phonemico 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/README.txt +43 -0
  2. data/bin/phonemico +11 -0
  3. data/lib/phonemico.rb +147 -0
  4. data/sounds.csv +142 -0
  5. metadata +80 -0
data/README.txt ADDED
@@ -0,0 +1,43 @@
1
+ ===Phonemico===
2
+ Contributors: Allison Sliter, Ian Dees
3
+ Tags: linguistics, phonology, .csv parse,
4
+ Requires at least: Ruby 1.8
5
+ Tested up to: 1.9, JRuby
6
+
7
+ ==Description==
8
+
9
+ This command line application reads data from a(n included) .csv* containing all the IPA symbols represeting linguistic phones and the phonological features associated with them. It parses the .csv and allows the user to look up all features for a given linguistic phone, all phones for a given phonological feature, and compare two phones to determine what features they have in common and in contrast. It's meant to be used by phonologists and phonology students to aid and speed phonological analysis and rule writing. The software uses Unicode UTF-8's IPA's extension character set.
10
+
11
+ ==To Install==
12
+
13
+ From Ruby Gems:
14
+
15
+ Run the following commands from a command line application:
16
+ sudo gem update --system
17
+ sudo gem install phonemico
18
+ phonemico
19
+
20
+ From source
21
+
22
+ sudo gem install highline
23
+ ruby -rubygems bin/phonemico
24
+
25
+ ==Basic Usage==
26
+ Command line application provides three options
27
+ 1. List all features for a given sound
28
+ 2. List all sounds that share a given feature value
29
+ 3. List all shared features for two or more sounds
30
+
31
+ Choose one by number.
32
+
33
+ 1. Will prompt you to enter a sound - enter any sound from the IPA. Latin characters can be typed. Non-latin characters can be copied and pasted from the character map.** Africates are typed as two symbols (no binding character). If you've chosen a valid symbol, you'll get a full list of the phonological features associated with the that sound.
34
+
35
+ 2. Will prompt you to enter a feature - not just the feature but also the value. Like this "+consonantal". If you've chosen a feature that's on the chart and has sounds associated with it, you'll get a list of those sounds.
36
+
37
+ 3. Will prompt you to enter two sounds. As above, latin characters can be typed, non-latin characters can be copied and pasted from the character map.**
38
+ Africates are typed as two symbols (no binding character). If the symbols are distinct and both valid, you will get a list of all the features the two sounds share and a list of the features unique to the first.
39
+
40
+
41
+ *Special thanks to Eric Biggs and Bruce Hayes for their preparation of the sound features data included
42
+
43
+ **note about g. The voiced velar plosive is represented by the English letter g. With most English letters, the IPA symbol and the English symbol are identical. For some reason, the g is the exception. The latin script g is used in unicode to represent the voiced velar plosive. This software is designed to take a user input of either the standard g or the script g and treat it as if they represent the same sound. Because they do.
data/bin/phonemico ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
4
+
5
+ require 'phonemico'
6
+
7
+ csv_file = File.dirname(__FILE__) + '/../sounds.csv'
8
+ features = Phonemico::SoundFeatures.new
9
+ features.parse_file csv_file
10
+ runner = Phonemico::Runner.new features
11
+ runner.run
data/lib/phonemico.rb ADDED
@@ -0,0 +1,147 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "csv"
3
+ require "highline"
4
+
5
+ module Phonemico
6
+ class SoundFeatures
7
+ def parse_file(filename)
8
+ parse IO.read(filename)
9
+ end
10
+
11
+ def parse(text)
12
+ rows = CSV.parse(text)
13
+ @features = rows.shift
14
+ @features.shift # first cell is empty
15
+ @hash = {}
16
+
17
+ rows.each do |row|
18
+ phoneme = row.shift
19
+ @hash[phoneme] = []
20
+ row.each_with_index do |feature, index|
21
+ value = feature + @features[index]
22
+
23
+ @hash[phoneme] << value unless feature == "0"
24
+ end
25
+ end
26
+ end
27
+
28
+ def all_phonemes
29
+ @hash.keys.sort
30
+ end
31
+
32
+ def all_features
33
+ @features
34
+ end
35
+
36
+ def features_for(phoneme)
37
+ @hash[phoneme] || []
38
+ end
39
+
40
+ def phonemes_for(feature)
41
+ all_phonemes.select do |phoneme|
42
+ @hash[phoneme].include?(feature)
43
+ end
44
+ end
45
+
46
+ def common_features_for(phoneme1, phoneme2)
47
+ features1 = features_for(phoneme1)
48
+ features2 = features_for(phoneme2)
49
+ features1 & features2
50
+ end
51
+
52
+ def features_only_in_first(phoneme1, phoneme2)
53
+ features1 = features_for(phoneme1)
54
+ features2 = features_for(phoneme2)
55
+ unless features1 == nil
56
+ features1.select do |feature|
57
+ features2.include? opposite(feature)
58
+ end
59
+ else
60
+ return nil
61
+ end
62
+ end
63
+
64
+ private
65
+
66
+ def opposite(s)
67
+ first = s[0..0]
68
+ rest = s[1..-1]
69
+ flipped = (first == "+" ? "-" : "+")
70
+ flipped + rest
71
+ end
72
+ end
73
+
74
+ class Runner
75
+ def initialize(features, console = HighLine.new)
76
+ @features = features
77
+ @highline = console
78
+ end
79
+
80
+ def run
81
+ @highline.choose do |menu|
82
+ menu.choice('List all features for a given sound') {find_features}
83
+ menu.choice('List all sounds that share a given feature value') {find_phonemes}
84
+ menu.choice('List all shared features for two or more sounds') {find_common_features}
85
+ menu.prompt = 'What would you like to do?'
86
+ end
87
+ end
88
+
89
+ private
90
+
91
+ def find_features
92
+ phoneme = @highline.ask 'Which sound would you like to examine? Please enter a unicode IPA symbol'
93
+ phoneme.gsub!('g', 'ɡ')
94
+
95
+ if @features.all_phonemes.include?(phoneme)
96
+ result = @features.features_for phoneme
97
+ @highline.say "Here are the features for #{phoneme}:"
98
+ @highline.say result.empty? ? '(none)' : result.join(', ')
99
+ else
100
+ @highline.say "That sound isn't on the list."
101
+ end
102
+ end
103
+
104
+ def find_phonemes
105
+ feature = @highline.ask 'Which feature value would you like to examine? Example: "-syllabic"'
106
+
107
+ if @features.all_features.include?(feature[1..-1])
108
+ result = @features.phonemes_for feature
109
+ @highline.say "Here are all the sounds that are #{feature}:"
110
+ @highline.say result.empty? ? '(none)' : result.join(', ')
111
+ else
112
+ @highline.say "That feature isn't on the list."
113
+ end
114
+ end
115
+
116
+ def find_common_features
117
+ phoneme1 = @highline.ask 'What is the first sound you wish to compare? Please enter a unicode IPA symbol'
118
+ phoneme1.gsub!('g', 'ɡ')
119
+ unless @features.all_phonemes.include?(phoneme1)
120
+ @highline.say "That sound isn't on the list."
121
+ return
122
+ end
123
+
124
+ phoneme2 = @highline.ask 'What is the second sound you wish to compare?'
125
+ phoneme2.gsub!('g', 'ɡ')
126
+ unless @features.all_phonemes.include?(phoneme2)
127
+ @highline.say "That sound isn't on the list."
128
+ return
129
+ end
130
+
131
+ if phoneme1 == phoneme2
132
+ @highline.say "The sounds are identical."
133
+ return
134
+ end
135
+
136
+ in_common = @features.common_features_for phoneme1, phoneme2
137
+ in_contrast = @features.features_only_in_first phoneme1, phoneme2
138
+
139
+ @highline.say "#{phoneme1} and #{phoneme2} have the following features in common:"
140
+ @highline.say in_common.empty? ? '(none)' : in_common.join(', ')
141
+ @highline.say "The following features are unique to #{phoneme1}:"
142
+ @highline.say in_contrast.empty? ? '(none)' : in_contrast.join(', ')
143
+ end
144
+ end
145
+ end
146
+
147
+
data/sounds.csv ADDED
@@ -0,0 +1,142 @@
1
+ ,"syllabic","stress","long","consonantal","sonorant","continuant","delayed release","approximant","tap","trill","nasal","voice","spread gl","constr gl","LABIAL","round","labiodental","CORONAL","anterior","distributed","strident","lateral","DORSAL","high","low","front","back","tense"
2
+ "ɒ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","-","+","-","+",0
3
+ "ɑ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","-","+","-","+",0
4
+ "ɶ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","-","+","+","-",0
5
+ "a","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","-","+","-","-",0
6
+ "æ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","-","+","+","-",0
7
+ "ʌ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","-","-","-","+","-"
8
+ "ɔ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","-","-","-","+","-"
9
+ "o","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","-","-","-","+","+"
10
+ "ɤ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","-","-","-","+","+"
11
+ "ɘ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","-","-","-","-","+"
12
+ "œ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","-","-","+","-","-"
13
+ "ə","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","-","-","-","-","-"
14
+ "e","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","-","-","+","-","+"
15
+ "ɞ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","-","-","-","-","-"
16
+ "ø","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","-","-","+","-","+"
17
+ "ɛ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","-","-","+","-","-"
18
+ "ɵ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","-","-","-","-","+"
19
+ "ɯ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-","-","+","+"
20
+ "u","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","+","-","-","+","+"
21
+ "ʊ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","+","-","-","+","-"
22
+ "ɨ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-","-","-","+"
23
+ "ʉ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","+","-","-","-","+"
24
+ "y","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","+","-","+","-","+"
25
+ "i","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-","+","-","+"
26
+ "ʏ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","+","-","+","-","-"
27
+ "ɪ","+","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-","+","-","-"
28
+ "ŋ̟","-","-","-","+","+","-",0,"-","-","-","+","+","-","-","-","-","-","-",0,0,0,"-","+","+","-","+","-",0
29
+ "ʟ̟","-","-","-","+","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"+","+","+","-","+","-",0
30
+ "ɫ","-","-","-","+","+","+",0,"+","-","-","-","+","-","-","-","-","-","+","+","-","-","+","+","-","-","-","+",0
31
+ "ɴ","-","-","-","+","+","-",0,"-","-","-","+","+","-","-","-","-","-","-",0,0,0,"-","+","-","-","-","+",0
32
+ "ʀ","-","-","-","+","+","+",0,"+","-","+","-","+","-","-","-","-","-","-",0,0,0,"-","+","-","-","-","+",0
33
+ "ɲ","-","-","-","+","+","-",0,"-","-","-","+","+","-","-","-","-","-","+","-","+","-","-","+","+","-","+","-",0
34
+ "ʎ","-","-","-","+","+","+",0,"+","-","-","-","+","-","-","-","-","-","+","-","+","-","+","+","+","-","+","-",0
35
+ "ŋ̟","-","-","-","+","+","-",0,"-","-","-","+","+","-","-","-","-","-","-",0,0,0,"-","+","+","-",0,0,0
36
+ "ŋ̠","-","-","-","+","+","-",0,"-","-","-","+","+","-","-","-","-","-","-",0,0,0,"-","+","+","-","-","+",0
37
+ "ʟ","-","-","-","+","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"+","+","+","-",0,0,0
38
+ "ʟ̠","-","-","-","+","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"+","+","+","-","-","+",0
39
+ "ɳ","-","-","-","+","+","-",0,"-","-","-","+","+","-","-","-","-","-","+","-","-","-","-","-",0,0,0,0,0
40
+ "ʙ","-","-","-","+","+","+",0,"+","-","+","-","+","-","-","+","-","-","-",0,0,0,"-","-",0,0,0,0,0
41
+ "ɭ","-","-","-","+","+","+",0,"+","-","-","-","+","-","-","-","-","-","+","-","-","-","+","-",0,0,0,0,0
42
+ "ɺ","-","-","-","+","+","+",0,"+","+","-","-","+","-","-","-","-","-","+","+","-","-","+","-",0,0,0,0,0
43
+ "ɻ","-","-","-","+","+","+",0,"+","-","-","-","+","-","-","-","-","-","+","-","-","-","-","-",0,0,0,0,0
44
+ "ɽ","-","-","-","+","+","+",0,"+","+","-","-","+","-","-","-","-","-","+","-","-","-","-","-",0,0,0,0,0
45
+ "r","-","-","-","+","+","+",0,"+","-","+","-","+","-","-","-","-","-","+","+","-","-","-","-",0,0,0,0,0
46
+ "n","-","-","-","+","+","-",0,"-","-","-","+","+","-","-","-","-","-","+","+","-","-","-","-",0,0,0,0,0
47
+ "m","-","-","-","+","+","-",0,"-","-","-","+","+","-","-","+","-","-","-",0,0,0,"-","-",0,0,0,0,0
48
+ "l","-","-","-","+","+","+",0,"+","-","-","-","+","-","-","-","-","-","+","+","-","-","+","-",0,0,0,0,0
49
+ "ɾ","-","-","-","+","+","+",0,"+","+","-","-","+","-","-","-","-","-","+","+","-","-","-","-",0,0,0,0,0
50
+ "ɱ","-","-","-","+","+","-",0,"-","-","-","+","+","-","-","+","-","+","-",0,0,0,"-","-",0,0,0,0,0
51
+ "ʔ","-","-","-","+","-","-","-","-","-","-","-","-","-","+","-","-","-","-",0,0,0,"-","-",0,0,0,0,0
52
+ "ɣ̟","-","-","-","+","-","+","+","-","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-","+","-",0
53
+ "x̟","-","-","-","+","-","+","+","-","-","-","-","-","-","-","-","-","-","-",0,0,0,"-","+","+","-","+","-",0
54
+ "k̟","-","-","-","+","-","-","-","-","-","-","-","-","-","-","-","-","-","-",0,0,0,"-","+","+","-","+","-",0
55
+ "ɡ̟","-","-","-","+","-","-","-","-","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-","+","-",0
56
+ "kx","-","-","-","+","-","-","+","-","-","-","-","-","-","-","-","-","-","-",0,0,0,"-","+","+","-","+","-",0
57
+ "gɣ̟","-","-","-","+","-","-","+","-","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-","+","-",0
58
+ "ħ","-","-","-","+","-","+","+","-","-","-","-","-","-","-","-","-","-","-",0,0,0,"-","+","-","+","-","+",0
59
+ "ʕ","-","-","-","+","-","+","-","-","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","-","+","-","+",0
60
+ "ʁ","-","-","-","+","-","+","+","-","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","-","-","-","+",0
61
+ "q","-","-","-","+","-","-","-","-","-","-","-","-","-","-","-","-","-","-",0,0,0,"-","+","-","-","-","+",0
62
+ "χ","-","-","-","+","-","+","+","-","-","-","-","-","-","-","-","-","-","-",0,0,0,"-","+","-","-","-","+",0
63
+ "ɢ","-","-","-","+","-","-","-","-","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","-","-","-","+",0
64
+ "ɕ","-","-","-","+","-","+","+","-","-","-","-","-","-","-","-","-","-","+","+","+","+","-","+","+","-","+","-",0
65
+ "ɟ","-","-","-","+","-","-","-","-","-","-","-","+","-","-","-","-","-","+","-","+","-","-","+","+","-","+","-",0
66
+ "ʝ","-","-","-","+","-","+","+","-","-","-","-","+","-","-","-","-","-","+","-","+","-","-","+","+","-","+","-",0
67
+ "c","-","-","-","+","-","-","-","-","-","-","-","-","-","-","-","-","-","+","-","+","-","-","+","+","-","+","-",0
68
+ "ç","-","-","-","+","-","+","+","-","-","-","-","-","-","-","-","-","-","+","-","+","-","-","+","+","-","+","-",0
69
+ "dʑ","-","-","-","+","-","-","+","-","-","-","-","+","-","-","-","-","-","+","+","+","+","-","+","+","-","+","-",0
70
+ "tɕ","-","-","-","+","-","-","+","-","-","-","-","-","-","-","-","-","-","+","+","+","+","-","+","+","-","+","-",0
71
+ "ɣ","-","-","-","+","-","+","+","-","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-",0,0,0
72
+ "ɣ̠","-","-","-","+","-","+","+","-","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-","-","+",0
73
+ "x","-","-","-","+","-","+","+","-","-","-","-","-","-","-","-","-","-","-",0,0,0,"-","+","+","-",0,0,0
74
+ "x̠","-","-","-","+","-","+","+","-","-","-","-","-","-","-","-","-","-","-",0,0,0,"-","+","+","-","-","+",0
75
+ "k","-","-","-","+","-","-","-","-","-","-","-","-","-","-","-","-","-","-",0,0,0,"-","+","+","-",0,0,0
76
+ "k̠","-","-","-","+","-","-","-","-","-","-","-","-","-","-","-","-","-","-",0,0,0,"-","+","+","-","-","+",0
77
+ "ɡ","-","-","-","+","-","-","-","-","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-",0,0,0
78
+ "ɡ̠","-","-","-","+","-","-","-","-","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-","-","+",0
79
+ "ʑ","-","-","-","+","-","+","+","-","-","-","-","+","-","-","-","-","-","+","+","+","+","-","+","+","-","+","-",0
80
+ "ʈ","-","-","-","+","-","-","-","-","-","-","-","-","-","-","-","-","-","+","-","-","-","-","-",0,0,0,0,0
81
+ "ɖ","-","-","-","+","-","-","-","-","-","-","-","+","-","-","-","-","-","+","-","-","-","-","-",0,0,0,0,0
82
+ "ɬ","-","-","-","+","-","+","+","-","-","-","-","-","-","-","-","-","-","+","+","-","-","+","-",0,0,0,0,0
83
+ "ʐ","-","-","-","+","-","+","+","-","-","-","-","+","-","-","-","-","-","+","-","-","+","-","-",0,0,0,0,0
84
+ "ɸ","-","-","-","+","-","+","+","-","-","-","-","-","-","-","+","-","-","-",0,0,0,"-","-",0,0,0,0,0
85
+ "ʂ","-","-","-","+","-","+","+","-","-","-","-","-","-","-","-","-","-","+","-","-","+","-","-",0,0,0,0,0
86
+ "ʒ","-","-","-","+","-","+","+","-","-","-","-","+","-","-","-","-","-","+","-","+","+","-","-",0,0,0,0,0
87
+ "z","-","-","-","+","-","+","+","-","-","-","-","+","-","-","-","-","-","+","+","-","+","-","-",0,0,0,0,0
88
+ "v","-","-","-","+","-","+","+","-","-","-","-","+","-","-","+","-","+","-",0,0,0,"-","-",0,0,0,0,0
89
+ "t","-","-","-","+","-","-","-","-","-","-","-","-","-","-","-","-","-","+","+","-","-","-","-",0,0,0,0,0
90
+ "ʃ","-","-","-","+","-","+","+","-","-","-","-","-","-","-","-","-","-","+","-","+","+","-","-",0,0,0,0,0
91
+ "s","-","-","-","+","-","+","+","-","-","-","-","-","-","-","-","-","-","+","+","-","+","-","-",0,0,0,0,0
92
+ "p","-","-","-","+","-","-","-","-","-","-","-","-","-","-","+","-","-","-",0,0,0,"-","-",0,0,0,0,0
93
+ "f","-","-","-","+","-","+","+","-","-","-","-","-","-","-","+","-","+","-",0,0,0,"-","-",0,0,0,0,0
94
+ "d","-","-","-","+","-","-","-","-","-","-","-","+","-","-","-","-","-","+","+","-","-","-","-",0,0,0,0,0
95
+ "b","-","-","-","+","-","-","-","-","-","-","-","+","-","-","+","-","-","-",0,0,0,"-","-",0,0,0,0,0
96
+ "θ","-","-","-","+","-","+","+","-","-","-","-","-","-","-","-","-","-","+","+","+","-","-","-",0,0,0,0,0
97
+ "ɮ","-","-","-","+","-","+","+","-","-","-","-","+","-","-","-","-","-","+","+","-","-","+","-",0,0,0,0,0
98
+ "ð","-","-","-","+","-","+","+","-","-","-","-","+","-","-","-","-","-","+","+","+","-","-","-",0,0,0,0,0
99
+ "β","-","-","-","+","-","+","+","-","-","-","-","+","-","-","+","-","-","-",0,0,0,"-","-",0,0,0,0,0
100
+ "dʒ","-","-","-","+","-","-","+","-","-","-","-","+","-","-","-","-","-","+","-","+","+","-","-",0,0,0,0,0
101
+ "dz","-","-","-","+","-","-","+","-","-","-","-","+","-","-","-","-","-","+","+","-","+","-","-",0,0,0,0,0
102
+ "dɮ","-","-","-","+","-","-","+","-","-","-","-","+","-","-","-","-","-","+","+","-","-","+","-",0,0,0,0,0
103
+ "d̠ɮ̠","-","-","-","+","-","-","+","-","-","-","-","+","-","-","-","-","-","+","-","+","-","+","-",0,0,0,0,0
104
+ "tʃ","-","-","-","+","-","-","+","-","-","-","-","-","-","-","-","-","-","+","-","+","+","-","-",0,0,0,0,0
105
+ "t̠ɬ̠","-","-","-","+","-","-","+","-","-","-","-","-","-","-","-","-","-","+","-","+","-","+","-",0,0,0,0,0
106
+ "ts","-","-","-","+","-","-","+","-","-","-","-","-","-","-","-","-","-","+","+","-","+","-","-",0,0,0,0,0
107
+ "tɬ","-","-","-","+","-","-","+","-","-","-","-","-","-","-","-","-","-","+","+","-","-","+","-",0,0,0,0,0
108
+ "t̪s̪","-","-","-","+","-","-","+","-","-","-","-","-","-","-","-","-","-","+","+","+","+","-","-",0,0,0,0,0
109
+ "t̪ɬ̪","-","-","-","+","-","-","+","-","-","-","-","-","-","-","-","-","-","+","+","+","-","+","-",0,0,0,0,0
110
+ "d̪z̪","-","-","-","+","-","-","+","-","-","-","-","+","-","-","-","-","-","+","+","+","+","-","-",0,0,0,0,0
111
+ "d̪ɮ̪","-","-","-","+","-","-","+","-","-","-","-","+","-","-","-","-","-","+","+","+","-","+","-",0,0,0,0,0
112
+ "ʈʂ","-","-","-","+","-","-","+","-","-","-","-","-","-","-","-","-","-","+","-","-","+","-","-",0,0,0,0,0
113
+ "ɖʐ","-","-","-","+","-","-","+","-","-","-","-","+","-","-","-","-","-","+","-","-","+","-","-",0,0,0,0,0
114
+ "pf","-","-","-","+","-","-","+","-","-","-","-","-","-","-","+","-","+","-",0,0,0,"-","-",0,0,0,0,0
115
+ "bv","-","-","-","+","-","-","+","-","-","-","-","+","-","-","+","-","+","-",0,0,0,"-","-",0,0,0,0,0
116
+ "pɸ","-","-","-","+","-","-","+","-","-","-","-","-","-","-","+","-","-","-",0,0,0,"-","-",0,0,0,0,0
117
+ "bβ","-","-","-","+","-","-","+","-","-","-","-","+","-","-","+","-","-","-",0,0,0,"-","-",0,0,0,0,0
118
+ "t̪θ","-","-","-","+","-","-","+","-","-","-","-","-","-","-","-","-","-","+","+","+","-","-","-",0,0,0,0,0
119
+ "d̪ð","-","-","-","+","-","-","+","-","-","-","-","+","-","-","-","-","-","+","+","+","-","-","-",0,0,0,0,0
120
+ "cç","-","-","-","+","-","-","+","-","-","-","-","-","-","-","-","-","-","+","-","+","-","-","+","+","-","+","-",0
121
+ "ɟʝ","-","-","-","+","-","-","+","-","-","-","-","+","-","-","-","-","-","+","-","+","-","-","+","+","-","+","-",0
122
+ "kx","-","-","-","+","-","-","+","-","-","-","-","-","-","-","-","-","-","-",0,0,0,"-","+","+","-",0,0,0
123
+ "k̠x̠","-","-","-","+","-","-","+","-","-","-","-","-","-","-","-","-","-","-",0,0,0,"-","+","+","-","-","+",0
124
+ "ɡɣ","-","-","-","+","-","-","+","-","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-",0,0,0
125
+ "ɡ̠ɣ̠","-","-","-","+","-","-","+","-","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-","-","+",0
126
+ "qχ","-","-","-","+","-","-","+","-","-","-","-","-","-","-","-","-","-","-",0,0,0,"-","+","-","-","-","+",0
127
+ "ɢʁ","-","-","-","+","-","-","+","-","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","-","-","-","+",0
128
+ "ɧ","-","-","-","+","-","+","+","-","-","-","-","-","-","-","-","-","-","+","-","+","+","-","+","+","-",0,0,0
129
+ "kp","-","-","-","+","-","-","-","-","-","-","-","-","-","-","+","-","-","-",0,0,0,"-","+","+","-",0,0,0
130
+ "ɡb","-","-","-","+","-","-","-","-","-","-","-","+","-","-","+","-","-","-",0,0,0,"-","+","+","-",0,0,0
131
+ "pt","-","-","-","+","-","-","-","-","-","-","-","-","-","-","+","-","-","+","+","-","+","-","-",0,0,0,0,0
132
+ "bd","-","-","-","+","-","-","-","-","-","-","-","+","-","-","+","-","-","+","+","-","+","-","-",0,0,0,0,0
133
+ "ɰ","-","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-",0,0,"+"
134
+ "ɰ̠","-","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-","-","+","+"
135
+ "w","-","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","+","-","-","+","+"
136
+ "ɥ","-","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","+","-","-",0,0,0,"-","+","+","-","+","-","+"
137
+ "j","-","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","-",0,0,0,"-","+","+","-","+","-","+"
138
+ "ɹ","-","-","-","-","+","+",0,"+","-","-","-","+","-","-","-","-","-","+","-","+","-","-","-",0,0,0,0,0
139
+ "ʋ","-","-","-","-","+","+",0,"+","-","-","-","+","-","-","+","-","+","-",0,0,0,"-","-",0,0,0,0,0
140
+ "ʍ","-","-","-","-","-","+","+","-","-","-","-","-","+","-","+","+","-","-",0,0,0,"-","+","+","-","-","+","+"
141
+ "ɦ","-","-","-","-","-","+","+","-","-","-","-","+","+","-","-","-","-","-",0,0,0,"-","-",0,0,0,0,0
142
+ "h","-","-","-","-","-","+","+","-","-","-","-","-","+","-","-","-","-","-",0,0,0,"-","-",0,0,0,0,0
metadata ADDED
@@ -0,0 +1,80 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: phonemico
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 1
7
+ - 0
8
+ version: "1.0"
9
+ platform: ruby
10
+ authors:
11
+ - Allison Sliter
12
+ autorequire:
13
+ bindir: bin
14
+ cert_chain: []
15
+
16
+ date: 2010-03-01 00:00:00 -08:00
17
+ default_executable:
18
+ dependencies:
19
+ - !ruby/object:Gem::Dependency
20
+ name: highline
21
+ prerelease: false
22
+ requirement: &id001 !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ segments:
27
+ - 0
28
+ version: "0"
29
+ type: :runtime
30
+ version_requirements: *id001
31
+ description: |
32
+ Streamlines phonological analysis by:
33
+ 1) Looking up all the phonological features associated with a sound.
34
+ 2) Looking up all the sounds that share a specific phonological feature.
35
+ 3) Comparing two sounds to see their common and contrasting features.
36
+
37
+ email: allison.sliter@gmail.com
38
+ executables:
39
+ - phonemico
40
+ extensions: []
41
+
42
+ extra_rdoc_files: []
43
+
44
+ files:
45
+ - bin/phonemico
46
+ - lib/phonemico.rb
47
+ - README.txt
48
+ - sounds.csv
49
+ has_rdoc: true
50
+ homepage: http://bitbucket.org/allisons/phonemico
51
+ licenses: []
52
+
53
+ post_install_message:
54
+ rdoc_options: []
55
+
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ segments:
63
+ - 0
64
+ version: "0"
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ segments:
70
+ - 0
71
+ version: "0"
72
+ requirements: []
73
+
74
+ rubyforge_project:
75
+ rubygems_version: 1.3.6
76
+ signing_key:
77
+ specification_version: 3
78
+ summary: Simple utility to match IPA sounds to features
79
+ test_files: []
80
+