<%= f.label :key %>
@@ -13,7 +13,7 @@
<%= f.fields_for :title_translations do |f| %>
<% @site_valid_locales.each do |locale| %>
- <%= label_tag "name-#{locale}", "Name-#{I18nVariable.from_locale(locale)}", :class => 'control-label' %>
+ <%= label_tag "name-#{locale}", "#{t(:name)}-#{I18nVariable.from_locale(locale)}", :class => 'control-label' %>
<%= f.text_field locale, :class => 'input-xxlarge', :value => (@asset_category.title_translations[locale] rescue nil) %>
diff --git a/app/views/admin/assets/_asset.html.erb b/app/views/admin/assets/_asset.html.erb
index 3040f872..3b4ae873 100644
--- a/app/views/admin/assets/_asset.html.erb
+++ b/app/views/admin/assets/_asset.html.erb
@@ -2,11 +2,11 @@
<%= check_box_tag 'to_delete[]', asset.id, false, :class => "checkbox_in_list" %>
<%= asset.title rescue nil %>
-
+
<%= link_to t(:edit), edit_admin_asset_path(asset), :remote => true, :class => 'edit' %>
- <%= link_to t(:delete), admin_asset_path(asset), :confirm => t('sure?'), :method => :delete, :class => 'delete' %>
+ <%= link_to t(:delete_), admin_asset_path(asset), :confirm => t('sure?'), :method => :delete, :class => 'delete' %>
diff --git a/app/views/admin/attributes/_attribute_field.html.erb b/app/views/admin/attributes/_attribute_field.html.erb
index b12184e3..15e0d0e7 100644
--- a/app/views/admin/attributes/_attribute_field.html.erb
+++ b/app/views/admin/attributes/_attribute_field.html.erb
@@ -10,15 +10,15 @@
<% end %>
- markup<%= f.select :markup, LIST[:markups].keys, {}, {:style => "width:90px"} %>
- markup_value<%= f.text_field :markup_value,:size=>50 %>
- markup_options<%= f.text_field :markup_options,:size=>50 %>
- locale<%= f.check_box :locale,{},true,false %>
- built_in<%= f.check_box :built_in,{},true,false %>
- disabled<%= f.check_box :disabled,{},true,false %>
- add_more<%= f.check_box :add_more,{},true,false %>
- neutral_title<%= f.text_field :neutral_title,:size=>50 %>
- neutral_for<%= f.select :neutral_for, VALID_LOCALES, {}, {:style => "width:90px"} %>
+ <%= t(:markup) %> : <%= f.select :markup, LIST[:markups].keys, {}, {:style => "width:90px"} %>
+ <%= t(:markup_value) %> : <%= f.text_field :markup_value,:size=>50 %>
+ <%= t(:markup_options) %> : <%= f.text_field :markup_options,:size=>50 %>
+ <%= t(:locale) %> : locale<%= f.check_box :locale,{},true,false %>
+ <%= t(:built_in) %> : built_in<%= f.check_box :built_in,{},true,false %>
+ <%= t(:disabled) %> : disabled<%= f.check_box :disabled,{},true,false %>
+ <%= t(:add_more) %> : add_more<%= f.check_box :add_more,{},true,false %>
+ <%= t(:neutral_title) %> : neutral_title<%= f.text_field :neutral_title,:size=>50 %>
+ <%= t(:neutral_for) %> : neutral_for<%= f.select :neutral_for, VALID_LOCALES, {}, {:style => "width:90px"} %>
+ <%= submit_tag "Cancel", class: "bt-cancel fn_btn hh2 thmc2 thmtxt" %>
@@ -15,19 +15,14 @@
<%= f.text_field :email %>
-
+
<%= f.label :type%>
-
+
<%= options_for_select(
- [["朋友","朋友"],
- ["學生","摯友"],
- ["老師","老師"],
- ["摯友","摯友"],
- ["親戚","親戚"],
- ["同事","同事"],
- ["共同作者","共同作者"]
- ])
- %>
+ @co_author_relations.map do |relation|
+ [relation.relation, relation.id]
+ end
+ )%>
diff --git a/app/views/desktop/co_authors/index.html.erb b/app/views/desktop/co_authors/index.html.erb
index 147552d2..b01b2569 100644
--- a/app/views/desktop/co_authors/index.html.erb
+++ b/app/views/desktop/co_authors/index.html.erb
@@ -1,4 +1,8 @@
+list all coauthor
+<%= link_to "New Co-Author", new_desktop_co_author_path, :class=>"bt-co-author" %>
+<%= link_to "New Type", desktop_co_author_relations_path, :class=>"bt-new-type" %>
+
Name
EMail
@@ -7,14 +11,18 @@
-
+
+
<% @co_authors.each do |co_author| %>
<%= co_author.co_author %>
<%= co_author.email %>
- <%= co_author.type%>
- <%= link_to 'Destroy', desktop_co_author_path(co_author), method: :delete, confirm: 'Are you sure?' %>
+ <%= @co_author_relations.find(co_author.co_author_relations_id).relation \
+ unless co_author.co_author_relations_id.nil?%>
+ <%= link_to 'Edit', edit_desktop_co_author_path(co_author), :class => "bt-edit" %>
+ <%= link_to 'Destroy', desktop_co_author_path(co_author), method: :delete, confirm: 'Are you sure?', :class=>"bt-delete" %>
<% end %>
+
diff --git a/app/views/desktop/index.html.erb b/app/views/desktop/index.html.erb
index b3f78780..c90f53fd 100755
--- a/app/views/desktop/index.html.erb
+++ b/app/views/desktop/index.html.erb
@@ -5,13 +5,13 @@
-
+
diff --git a/app/views/desktop/journal_lists/_form.html.erb b/app/views/desktop/journal_lists/_form.html.erb
new file mode 100644
index 00000000..ac7f7ac6
--- /dev/null
+++ b/app/views/desktop/journal_lists/_form.html.erb
@@ -0,0 +1,17 @@
+<%= form_for(@desktop_journal_list) do |f| %>
+ <% if @desktop_journal_list.errors.any? %>
+
+
<%= pluralize(@desktop_journal_list.errors.count, "error") %> prohibited this desktop_journal_list from being saved:
+
+
+ <% @desktop_journal_list.errors.full_messages.each do |msg| %>
+ <%= msg %>
+ <% end %>
+
+
+ <% end %>
+
+
+ <%= f.submit %>
+
+<% end %>
diff --git a/app/views/desktop/journal_lists/edit.html.erb b/app/views/desktop/journal_lists/edit.html.erb
new file mode 100644
index 00000000..d628e895
--- /dev/null
+++ b/app/views/desktop/journal_lists/edit.html.erb
@@ -0,0 +1,6 @@
+Editing desktop_journal_list
+
+<%= render 'form' %>
+
+<%= link_to 'Show', @desktop_journal_list %> |
+<%= link_to 'Back', desktop_journal_lists_path %>
diff --git a/app/views/desktop/journal_lists/index.html.erb b/app/views/desktop/journal_lists/index.html.erb
new file mode 100644
index 00000000..fad6ca66
--- /dev/null
+++ b/app/views/desktop/journal_lists/index.html.erb
@@ -0,0 +1,24 @@
+journal_title -- journal_level
+
+
+
diff --git a/app/views/desktop/journal_lists/new.html.erb b/app/views/desktop/journal_lists/new.html.erb
new file mode 100644
index 00000000..95017361
--- /dev/null
+++ b/app/views/desktop/journal_lists/new.html.erb
@@ -0,0 +1,5 @@
+New desktop_journal_list
+
+<%= render 'form' %>
+
+<%= link_to 'Back', desktop_journal_lists_path %>
diff --git a/app/views/desktop/journal_lists/show.html.erb b/app/views/desktop/journal_lists/show.html.erb
new file mode 100644
index 00000000..d454b78f
--- /dev/null
+++ b/app/views/desktop/journal_lists/show.html.erb
@@ -0,0 +1,5 @@
+<%= notice %>
+
+
+<%= link_to 'Edit', edit_desktop_journal_list_path(@desktop_journal_list) %> |
+<%= link_to 'Back', desktop_journal_lists_path %>
diff --git a/app/views/desktop/journal_p.html.erb b/app/views/desktop/journal_p.html.erb
index 87cf8a17..37a0aed1 100644
--- a/app/views/desktop/journal_p.html.erb
+++ b/app/views/desktop/journal_p.html.erb
@@ -14,9 +14,9 @@
+
+
+
+<%= javascript_include_tag "archive_plugin_form" %>
+
diff --git a/app/views/desktop/journal_pages/_form_file.html.erb b/app/views/desktop/journal_pages/_form_file.html.erb
new file mode 100644
index 00000000..afba08b7
--- /dev/null
+++ b/app/views/desktop/journal_pages/_form_file.html.erb
@@ -0,0 +1,23 @@
+" class="list_item">
+
+
+ <%= f.file_field :file, class: "s_grid_1 s_grid" %>
+ <%= form_file.file.file ? ( link_to t(:view), form_file.file.url, {:class => 'btn s_grid_1 s_grid', :target => '_blank', :title => t(:view)} ) : '' %>
+
+
+
+ <%= f.text_field :title, :class=>'s_grid_1 s_grid' %>
+
+
+
+
+ <% if form_file.new_record? %>
+
+ <% else %>
+ <%= f.hidden_field :id %>
+
+ <%= f.hidden_field :should_destroy, :value => nil, :class => 'should_destroy' %>
+ <% end %>
+
+
+
diff --git a/app/views/desktop/settings.html.erb b/app/views/desktop/settings.html.erb
index df754325..590f4e89 100644
--- a/app/views/desktop/settings.html.erb
+++ b/app/views/desktop/settings.html.erb
@@ -1,26 +1,26 @@
\ No newline at end of file
diff --git a/app/views/devise/registrations/edit.html.erb b/app/views/devise/registrations/edit.html.erb
index ff380509..9ec8721d 100644
--- a/app/views/devise/registrations/edit.html.erb
+++ b/app/views/devise/registrations/edit.html.erb
@@ -1,25 +1,14 @@
-Edit <%= resource_name.to_s.humanize %>
-<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
- <%= devise_error_messages! %>
+<%= form_for(resource, :as => resource_name, :url => users_passwd_path(resource_name), :html => { :method => :put, "form-type"=>"ajax_form" ,"callback-method"=>"passwordUpdate" }) do |f| %>
+ <%= f.submit "Update" %>
- <%= f.label :email %>
- <%= f.email_field :email %>
+ <%= f.label :current_password %>
+ <%= f.password_field :current_password %>
- <%= f.label :password %>
(leave blank if you don't want to change it)
+
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation %>
-
<%= f.label :current_password %> (we need your current password to confirm your changes)
- <%= f.password_field :current_password %>
-
-
<%= f.submit "Update" %>
<% end %>
-
-
Cancel my account
-
-
Unhappy? <%= link_to "Cancel my account", registration_path(resource_name), :confirm => "Are you sure?", :method => :delete %>.
-
-<%= link_to "Back", :back %>
diff --git a/app/views/devise/sessions/new.html.erb b/app/views/devise/sessions/new.html.erb
index f394700c..d85ff41d 100644
--- a/app/views/devise/sessions/new.html.erb
+++ b/app/views/devise/sessions/new.html.erb
@@ -11,8 +11,8 @@
You need to sign in or sign up before continuing.
- <%= f.label :email ,t("admin.user_new_interface.email")%>
- <%= f.text_field :email, :placeholder => t("admin.user_new_interface.email"), :style => "width: 330px;" %>
+ <%= f.label :email ,t(:email)%>
+ <%= f.text_field :email, :placeholder => t(:email), :style => "width: 330px;" %>
Please correct the error
diff --git a/app/views/layouts/_guest_orbit_menu.erb b/app/views/layouts/_guest_orbit_menu.erb
index 606cf5fd..df292674 100644
--- a/app/views/layouts/_guest_orbit_menu.erb
+++ b/app/views/layouts/_guest_orbit_menu.erb
@@ -1,5 +1,5 @@
Orbit
\ No newline at end of file
diff --git a/app/views/layouts/_member_orbit_menu.erb b/app/views/layouts/_member_orbit_menu.erb
index 1ec88b3f..fc703960 100644
--- a/app/views/layouts/_member_orbit_menu.erb
+++ b/app/views/layouts/_member_orbit_menu.erb
@@ -1,14 +1,14 @@
Orbit
- <%= link_to t(:homepage), root_path, :class => 'orbit-bar-home' %>
- <%= link_to t(:desktop), desktop_path, :class => 'orbit-bar-desktop' %>
+ <%= link_to '', root_path, {'data-icon' => 'house'} %>
+ <%= link_to '', desktop_path, {'data-icon' => 'desktop'} %>
- language
+
-
-
- search
+
+
-
+
+
+
+
+ '>
+ '>
+ <%= text_field_tag 'q','',{:class => "search-query span3",:placeholder=> t(:search_nccu) ,:disabled=> ((@site.search["sitesearch"] || @site.search["domains"] ).blank? rescue true)}%>
+
+
<% if user_signed_in? %>
@@ -42,20 +41,9 @@
<%= current_user.name %>
-
-
-
\ No newline at end of file
+
+ <%= t(:or_lower) %>
+ <% end %>
+
+ <%#= link_to t(:register), new_user_registration_path, :class => 'btn btn-danger register' %>
+
+
+ <% end %>
+
+
+
+
diff --git a/app/views/layouts/_side_bar.html.erb b/app/views/layouts/_side_bar.html.erb
index 32876b9f..af7a5c79 100644
--- a/app/views/layouts/_side_bar.html.erb
+++ b/app/views/layouts/_side_bar.html.erb
@@ -1,6 +1,6 @@
- <%= link_to content_tag(:i, nil, :class => (local_assigns.has_key? :icon) ? icon : 'icons-dashboard') + content_tag(:span, (local_assigns.has_key? :link_name) ? link_name : t('admin.dashboard')), (local_assigns.has_key? :link_url) ? link_url : admin_dashboards_path %>
+ <%= link_to content_tag(:i, nil, :class => (local_assigns.has_key? :icon) ? icon : 'icons-gauge') + content_tag(:span, (local_assigns.has_key? :link_name) ? link_name : t(:dashboard_)), (local_assigns.has_key? :link_url) ? link_url : admin_dashboards_path %>
diff --git a/app/views/layouts/_side_bar_content.html.erb b/app/views/layouts/_side_bar_content.html.erb
index f2656bd1..a0909e69 100644
--- a/app/views/layouts/_side_bar_content.html.erb
+++ b/app/views/layouts/_side_bar_content.html.erb
@@ -1,108 +1,82 @@
-
-<%#= content_tag :li, :class => active_for_controllers('purchases') do -%>
- <%#= link_to content_tag(:i, nil, :class => 'icons-purchase') + t('admin.purchase'), admin_purchases_path %>
-<%# end -%>
<% content_for :page_specific_javascript do %>
<%= javascript_include_tag "/static/kernel.js" %>
<% end %>
<%= content_tag :li, :class => (active_for_controllers('bulletins', '/panel/announcement/back_end/tags', 'bulletin_categorys', 'approvals') || active_for_app_auth('Announcement') || active_for_ob_auths_object("BulletinCategory") ) do -%>
- <%= link_to content_tag(:i, nil, :class => 'icons-announcement') + content_tag(:span, t('admin.announcement')), panel_announcement_back_end_bulletins_path %>
+ <%= link_to content_tag(:i, nil, :class => 'icons-megaphone') + content_tag(:span, t('announcement.announcement')), panel_announcement_back_end_bulletins_path %>
<%= content_tag :ul, :class => ("nav nav-list " + (visible_for_controllers('bulletins', '/panel/announcement/back_end/tags', 'bulletin_categorys', 'approvals')||active_for_ob_auths_object("BulletinCategory"))) do -%>
<%= content_tag :li, link_to((t('announcement.all_articles') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_announcement_back_end_bulletins_path), :class => active_for_action('bulletins', 'index')if (is_manager? rescue nil) %>
<%= content_tag :li, link_to((t('announcement.add_new') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_panel_announcement_back_end_bulletin_path), :class => active_for_action('bulletins', 'new') if (is_manager? rescue nil) %>
<%= content_tag :li, link_to((t('announcement.categories') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_announcement_back_end_bulletin_categorys_path), :class =>( active_for_action('bulletin_categorys', 'index') || active_for_ob_auths_object("BulletinCategory") )if (is_manager? rescue nil) %>
<%= content_tag :li, link_to((t('announcement.tags') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_announcement_back_end_tags_path), :class => active_for_action('/panel/announcement/back_end/tags', 'index')if (is_manager? rescue nil) %>
<%= content_tag :li, link_to((t('announcement.bulletin.approval_setting') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_announcement_back_end_approval_setting_path), :class => active_for_action('approvals', 'setting') if (is_manager? rescue nil) %>
- <%= content_tag :li, link_to((t('admin.module.authorization') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "announcement"}))), :class => active_for_app_auth('Announcement') if (is_admin? rescue nil) %>
+ <%= content_tag :li, link_to((t(:module_authorization) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "announcement"}))), :class => active_for_app_auth('Announcement') if (is_admin? rescue nil) %>
<% end -%>
<% end -%>
-<%#= content_tag :li, :class => active_for_controllers('users') do -%>
- <%#= link_to content_tag(:i, nil, :class => 'icons-member') + t('admin.member'), admin_users_path %>
-<%# end -%>
-
<%= content_tag :li, :class => active_for_controllers('page_contexts') || active_for_app_auth('page_content') || active_for_ob_auths_object("PageContext") do -%>
- <%= link_to content_tag(:i, nil, :class => 'icons-page') + content_tag(:span, t('admin.page')), panel_page_content_back_end_page_contexts_path %>
+ <%= link_to content_tag(:i, nil, :class => 'icons-page') + content_tag(:span, t(:page)), panel_page_content_back_end_page_contexts_path %>
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('page_contexts')) do -%>
- <%#= content_tag :li, link_to(t('admin.all_articles'), panel_page_content_back_end_page_contexts_path), :class => active_for_action('page_context', 'index') %>
- <%= content_tag :li, link_to((t('admin.module.authorization') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "page_content"}))), :class => active_for_app_auth('page_content') if (is_admin? rescue nil) %>
+ <%= content_tag :li, link_to((t(:module_authorization) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "page_content"}))), :class => active_for_app_auth('page_content') if (is_admin? rescue nil) %>
<% end -%>
<% end -%>
<%= content_tag :li, :class => active_for_controllers('ad_banners', 'ad_images') ||active_for_ob_auths_object("AdBanner") ||active_for_app_auth('ad_banner') do -%>
- <%= link_to content_tag(:i, nil, :class => 'icons-link') + content_tag(:span, t('admin.ad_banner')), admin_ad_banners_path %>
-
+ <%= link_to content_tag(:i, nil, :class => 'icons-landscape') + content_tag(:span, t(:ad_banner)), admin_ad_banners_path %>
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('ad_banners', 'ad_images') ) do -%>
- <%#= content_tag :li, link_to(t('admin.ad.all_banners'), admin_ad_banners_path), :class => active_for_action('ad_banners', 'index') %>
- <%#= content_tag :li, link_to(t('admin.ad.new_banner'), new_admin_ad_banner_path), :class => active_for_action('ad_banners', 'new') %>
- <%#= content_tag :li, link_to(t('admin.ad.new_image'), new_ad_image_admin_ad_banners_path), :class => active_for_action('ad_images', 'new') %>
- <%= content_tag :li, link_to((t('admin.module.authorization') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "ad_banner"}))), :class => active_for_app_auth('ad_banners') if (is_admin? rescue nil) %>
+ <%= content_tag :li, link_to((t(:module_authorization) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "ad_banner"}))), :class => active_for_app_auth('ad_banners') if (is_admin? rescue nil) %>
<% end -%>
<% end %>
<%= content_tag :li, :class => active_for_controllers('web_links', '/panel/web_resource/back_end/tags', 'web_link_categorys') || active_for_app_auth('web_resource') || active_for_ob_auths_object("WebLinkCategory") do -%>
- <%= link_to content_tag(:i, nil, :class => 'icons-link') + content_tag(:span, t('admin.link')), panel_web_resource_back_end_web_links_path %>
+ <%= link_to content_tag(:i, nil, :class => 'icons-link') + content_tag(:span, t(:link)), panel_web_resource_back_end_web_links_path %>
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('web_links', '/panel/web_resource/back_end/tags', 'web_link_categorys')) do -%>
- <%= content_tag :li, link_to((t('admin.all_articles') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_web_resource_back_end_web_links_path), :class => active_for_action('web_links', 'index')if (is_manager? rescue nil) %>
- <%= content_tag :li, link_to((t('announcement.add_new') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_panel_web_resource_back_end_web_link_path), :class => active_for_action('web_links', 'new') if (is_manager? rescue nil)%>
- <%= content_tag :li, link_to((t('announcement.categories') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_web_resource_back_end_web_link_categorys_path), :class => (active_for_action('web_link_categorys', 'index') || active_for_ob_auths_object("WebLinkCategory")) if (is_manager? rescue nil)%>
- <%= content_tag :li, link_to((t('announcement.tags') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_web_resource_back_end_tags_path), :class => active_for_action('/panel/web_resource/back_end/tags', 'index') if (is_manager? rescue nil)%>
- <%= content_tag :li, link_to((t('admin.module.authorization') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "web_resource"}))), :class => active_for_app_auth('web_resource') if (is_admin? rescue nil) %>
+ <%= content_tag :li, link_to((t(:list_) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_web_resource_back_end_web_links_path), :class => active_for_action('web_links', 'index')if (is_manager? rescue nil) %>
+ <%= content_tag :li, link_to((t(:link) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_panel_web_resource_back_end_web_link_path), :class => active_for_action('web_links', 'new') if (is_manager? rescue nil)%>
+ <%= content_tag :li, link_to((t(:categories) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_web_resource_back_end_web_link_categorys_path), :class => (active_for_action('web_link_categorys', 'index') || active_for_ob_auths_object("WebLinkCategory")) if (is_manager? rescue nil)%>
+ <%= content_tag :li, link_to((t(:tags) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_web_resource_back_end_tags_path), :class => active_for_action('/panel/web_resource/back_end/tags', 'index') if (is_manager? rescue nil)%>
+ <%= content_tag :li, link_to((t(:module_authorization) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "web_resource"}))), :class => active_for_app_auth('web_resource') if (is_admin? rescue nil) %>
<% end -%>
<% end -%>
<%= content_tag :li, :class => active_for_controllers('albums','album_images','gallery_categories','/panel/gallery/back_end/tags') || active_for_app_auth("gallery") do -%>
- <%= link_to content_tag(:i, nil, :class => 'icons-picture') + content_tag(:span, t('admin.orbit_gallery')), panel_gallery_back_end_albums_path %>
+ <%= link_to content_tag(:i, nil, :class => 'icons-pictures') + content_tag(:span, t(:gallery)), panel_gallery_back_end_albums_path %>
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('albums') ) do -%>
- <%#= content_tag :li, link_to(t('admin.ad.all_banners'), admin_ad_banners_path), :class => active_for_action('ad_banners', 'index') %>
- <%#= content_tag :li, link_to(t('admin.ad.new_banner'), new_admin_ad_banner_path), :class => active_for_action('ad_banners', 'new') %>
- <%#= content_tag :li, link_to(t('admin.ad.new_image'), new_ad_image_admin_ad_banners_path), :class => active_for_action('ad_images', 'new') %>
<%= content_tag(:li, link_to((t('gallery.categories') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_gallery_back_end_gallery_categories_path), :class => active_for_action('gallery_categories','index') )if (is_manager? rescue nil)%>
<%= content_tag :li, link_to((t('gallery.tags') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_gallery_back_end_tags_path), :class => active_for_action('/panel/gallery/back_end/tags', 'index') if (is_manager? rescue nil) %>
- <%= content_tag :li, link_to((t('admin.module.authorization') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "gallery"}))), :class => active_for_app_auth('gallery') if (is_admin? rescue nil) %>
+ <%= content_tag :li, link_to((t(:module_authorization) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe,admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "gallery"}))), :class => active_for_app_auth('gallery') if (is_admin? rescue nil) %>
<% end -%>
<% end %>
<%= content_tag :li, :class => active_for_controllers('archive_files', 'panel/archive/back_end/tags', 'archive_file_categorys') do -%>
- <%= link_to content_tag(:i, nil, :class => 'icons-asset') + content_tag(:span, t('admin.archive')), panel_archive_back_end_archive_files_path %>
+ <%= link_to content_tag(:i, nil, :class => 'icons-archive') + content_tag(:span, t(:archive)), panel_archive_back_end_archive_files_path %>
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('archive_files', 'tags', 'archive_file_categorys')) do -%>
- <%= content_tag :li, link_to((t('admin.all_articles') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_archive_back_end_archive_files_path), :class => active_for_action('archive_file', 'index')if (is_manager? rescue nil) %>
- <%= content_tag :li, link_to((t('admin.add_new') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_panel_archive_back_end_archive_file_path), :class => active_for_action('archive_file', 'new') if (is_admin? rescue nil)%>
- <%= content_tag(:li, link_to((t('admin.categories') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_archive_back_end_archive_file_categorys_path), :class => active_for_action('archive_file_categorys', 'index'))if (is_manager? rescue nil)%>
- <%= content_tag :li, link_to((t('admin.tags') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_archive_back_end_tags_path), :class => active_for_action('tags', 'index') if (is_manager? rescue nil)%>
+ <%= content_tag :li, link_to((t(:all) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_archive_back_end_archive_files_path), :class => active_for_action('archive_file', 'index')if (is_manager? rescue nil) %>
+ <%= content_tag :li, link_to((t(:add) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_panel_archive_back_end_archive_file_path), :class => active_for_action('archive_file', 'new') if (is_admin? rescue nil)%>
+ <%= content_tag(:li, link_to((t(:categories) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_archive_back_end_archive_file_categorys_path), :class => active_for_action('archive_file_categorys', 'index'))if (is_manager? rescue nil)%>
+ <%= content_tag :li, link_to((t(:tags) + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, panel_archive_back_end_tags_path), :class => active_for_action('tags', 'index') if (is_manager? rescue nil)%>
<% end -%>
<% end -%>
<%= content_tag :li, :class => active_for_controllers('cals','panel/calendar/back_end/tags') || active_for_app_auth("calendar") do -%>
- <%= link_to content_tag(:i, nil, :class => 'icons-calendar') + content_tag(:span, t('admin.calendar')), panel_calendar_back_end_cals_path %>
+ <%= link_to content_tag(:i, nil, :class => 'icons-calendar') + content_tag(:span, t(:calendar)), panel_calendar_back_end_cals_path %>
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('cals','calendar_categories') ) do -%>
- <%#= content_tag :li, link_to(t('admin.ad.all_banners'), admin_ad_banners_path), :class => active_for_action('ad_banners', 'index') %>
- <%#= content_tag :li, link_to(t('admin.ad.new_banner'), new_admin_ad_banner_path), :class => active_for_action('ad_banners', 'new') %>
- <%#= content_tag :li, link_to(t('admin.ad.new_image'), new_ad_image_admin_ad_banners_path), :class => active_for_action('ad_images', 'new') %>
- <%= content_tag :li, link_to((t('admin.calendars') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_panel_calendar_back_end_cal_path), :class => active_for_action('cals','new') if (is_manager? rescue nil)%>
- <%= content_tag :li, link_to(t('admin.tags'), panel_calendar_back_end_tags_path), :class => active_for_action('/panel/calendar/back_end/tags', 'index')if (is_manager? rescue nil) %>
- <%#= content_tag :li, link_to(t('admin.module.authorization'),admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "gallery"}))), :class => active_for_app_auth('gallery') if (is_admin? rescue nil) %>
+ <%= content_tag :li, link_to((t('calendar.calendars') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_panel_calendar_back_end_cal_path), :class => active_for_action('cals','new') if (is_manager? rescue nil)%>
+ <%= content_tag :li, link_to(t(:tags), panel_calendar_back_end_tags_path), :class => active_for_action('/panel/calendar/back_end/tags', 'index')if (is_manager? rescue nil) %>
<% end -%>
<% end %>
<%= content_tag :li, :class => active_for_controllers('locations') || active_for_app_auth("gprs") do -%>
- <%= link_to content_tag(:i, nil, :class => 'icons-link') + content_tag(:span, t('admin.gprs')), panel_gprs_back_end_locations_path %>
+ <%= link_to content_tag(:i, nil, :class => 'icons-location') + content_tag(:span, t(:location)), panel_gprs_back_end_locations_path %>
<%= content_tag :ul, :class => ("nav nav-list " + visible_for_controllers('locations') ) do -%>
- <%#= content_tag :li, link_to(t('admin.ad.all_banners'), admin_ad_banners_path), :class => active_for_action('ad_banners', 'index') %>
- <%#= content_tag :li, link_to(t('admin.ad.new_banner'), new_admin_ad_banner_path), :class => active_for_action('ad_banners', 'new') %>
- <%#= content_tag :li, link_to(t('admin.ad.new_image'), new_ad_image_admin_ad_banners_path), :class => active_for_action('ad_images', 'new') %>
- <%#= content_tag :li, link_to((t('calendar.calendars') + content_tag(:i, nil, :class => 'icon-chevron-right')).html_safe, new_panel_calendar_back_end_cal_path), :class => active_for_action('cals','new') %>
- <%#= content_tag :li, link_to(t('gallery.tags'), panel_gallery_back_end_tags_path), :class => active_for_action('/panel/gallery/back_end/tags', 'index') %>
- <%#= content_tag :li, link_to(t('admin.module.authorization'),admin_module_app_manager_auth_proc_path(ModuleApp.first(conditions: {key: "gallery"}))), :class => active_for_app_auth('gallery') if (is_admin? rescue nil) %>
<% end -%>
<% end %>
<% flash.each do |key, msg| %>
<%= content_tag :span, msg, :class => [key, "notice label label-warning"] %>
- <% end%>
+ <% end %>
\ No newline at end of file
diff --git a/app/views/seminar_p.html.erb b/app/views/seminar_p.html.erb
deleted file mode 100644
index 15573365..00000000
--- a/app/views/seminar_p.html.erb
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
\ No newline at end of file
diff --git a/app/views/shared/attribute_field/_address_modal_dialog.html.erb b/app/views/shared/attribute_field/_address_modal_dialog.html.erb
index 31063d43..74944a00 100644
--- a/app/views/shared/attribute_field/_address_modal_dialog.html.erb
+++ b/app/views/shared/attribute_field/_address_modal_dialog.html.erb
@@ -56,7 +56,7 @@
\ No newline at end of file
diff --git a/app/views/shared/attribute_field/_attribute_field.html.erb b/app/views/shared/attribute_field/_attribute_field.html.erb
index c18e0b9f..5f28cd03 100644
--- a/app/views/shared/attribute_field/_attribute_field.html.erb
+++ b/app/views/shared/attribute_field/_attribute_field.html.erb
@@ -3,19 +3,19 @@
ON
<%= hidden_field "info[attribute_fields][#{attribute_field_counter}]","disabled",:value=>attribute_field.disabled,:class=>"attribute_field_disabled"%>
<%= hidden_field "info[attribute_fields][#{attribute_field_counter}]","to_delete",:value=>false,:class=>"attribute_field_to_delete"%>
- <%= t("delete")%>
+ <%= t(:delete_)%>
-
<%= t("admin.key") %>
+
<%= t(:key) %>
- <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:values=>attribute_field.title_translations,:class_ext=>"pull-left",:label_ext=>t("admin.infos.name"),:field_name=>"info[attribute_fields][#{attribute_field_counter}][title_translations]"}%>
+ <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:values=>attribute_field.title_translations,:class_ext=>"pull-left",:label_ext=>t(:name),:field_name=>"info[attribute_fields][#{attribute_field_counter}][title_translations]"}%>
-
<%= t("admin.infos.type")%>
+
<%= t(:type)%>
<%#= select_tag "info[attribute_fields][#{attribute_field_counter}][markup]" do %>
>
@@ -30,15 +30,15 @@
<%= content_tag :div,:class=>show_type_panel(attribute_field,"typeA") do%>
-
<%= t("admin.infos.options")%>
+
<%= t(:options)%>
<%= check_box_tag("info[attribute_fields][#{attribute_field_counter}][typeA][cross_lang]","true",attribute_field["typeA"]["cross_lang"]) %>
- <%= t("admin.infos.cross_lang")%>
+ <%= t(:cross_lang)%>
<%= check_box_tag("info[attribute_fields][#{attribute_field_counter}][typeA][add_more]","true",attribute_field["typeA"]["add_more"]) %>
- <%= t("admin.infos.add_more")%>
+ <%= t(:add_more)%>
@@ -46,7 +46,7 @@
<% end %>
<%= content_tag :div,:class=>show_type_panel(attribute_field,"typeB") do %>
- <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:label_ext=>t("admin.infos.initial"),:values=>attribute_field["typeB"]["initial"],:field_name=>"info[attribute_fields][#{attribute_field_counter}][typeB][initial]"}%>
+ <%= render :partial=>"shared/attribute_field/placeholder_block",:locals=>{:label_ext=>t(:initial),:values=>attribute_field["typeB"]["initial"],:field_name=>"info[attribute_fields][#{attribute_field_counter}][typeB][initial]"}%>
<% if attribute_field.self_defined_markup_options?%>
<%= render :partial=>"shared/attribute_field/list_block",:locals=>{:values=>attribute_field["option_list"],:field_name=> "info[attribute_fields][#{attribute_field_counter}][attribute][role][statuses]"} %>
@@ -57,41 +57,41 @@
<% end %>
<%= content_tag :div,:class=>show_type_panel(attribute_field,"typeC") do %>
-
<%= t("admin.infos.date.format")%>
+
<%= t("date.format")%>
<%= select "info[attribute_fields][#{attribute_field_counter}][typeC]","format",Admin::AttributeValuesViewHelper::OPT,:class=>"dataType",:selected=>attribute_field["typeC"]["format"] %>
-
<%= t("admin.infos.date.range")%>
+
<%= t("date.range")%>
- <%= radio_button("info[attribute_fields][#{attribute_field_counter}][typeC]", "is_range", "false",:checked => (!attribute_field.date_is_range? ? true : false)) %><%= t("admin.infos.not_range")%>
+ <%= radio_button("info[attribute_fields][#{attribute_field_counter}][typeC]", "is_range", "false",:checked => (!attribute_field.date_is_range? ? true : false)) %><%= t(:yes_)%>
- <%= radio_button("info[attribute_fields][#{attribute_field_counter}][typeC]", "is_range", "true",:checked => (attribute_field.date_is_range? ? true : false)) %><%= t("admin.infos.is_range")%>
+ <%= radio_button("info[attribute_fields][#{attribute_field_counter}][typeC]", "is_range", "true",:checked => (attribute_field.date_is_range? ? true : false)) %><%= t(:no_)%>
-
<%= t("admin.infos.date.claendar")%>
+
<%= t("date.calendar")%>
- <%= radio_button("info[attribute_fields][#{attribute_field_counter}][typeC]", "claendar", "west_claendar",:checked =>(attribute_field["typeC"]["claendar"]== "west_claendar" ? true : false)) %><%= t("admin.infos.date.west_claendar")%>
+ <%= radio_button("info[attribute_fields][#{attribute_field_counter}][typeC]", "calendar", "west_calendar",:checked =>(attribute_field["typeC"]["calendar"]== "west_calendar" ? true : false)) %><%= t("date.west_calendar")%>
- <%= radio_button("info[attribute_fields][#{attribute_field_counter}][typeC]", "claendar", "tw_claendar",:checked =>(attribute_field["typeC"]["claendar"]== "tw_claendar" ? true : false)) %><%= t("admin.infos.date.tw_claendar")%>
+ <%= radio_button("info[attribute_fields][#{attribute_field_counter}][typeC]", "calendar", "tw_calendar",:checked =>(attribute_field["typeC"]["calendar"]== "tw_calendar" ? true : false)) %><%= t("date.tw_calendar")%>
<% end %>
<%= content_tag :div,:class=>show_type_panel(attribute_field,"typeD") do%>
-
<%= t("admin.infos.options")%>
+
<%= t(:options)%>
<%= check_box_tag("info[attribute_fields][#{attribute_field_counter}][typeD][cross_lang]","true",attribute_field["typeD"]["cross_lang"]) %>
- <%= t("admin.infos.cross_lang")%>
+ <%= t(:cross_lang)%>
diff --git a/app/views/shared/attribute_field/_list_block.html.erb b/app/views/shared/attribute_field/_list_block.html.erb
index 3c351418..18407ab9 100644
--- a/app/views/shared/attribute_field/_list_block.html.erb
+++ b/app/views/shared/attribute_field/_list_block.html.erb
@@ -2,7 +2,7 @@
<%= hidden_field_tag "#{temp_field_name}[count]",((values.keys.collect{|t| t.to_i}.max rescue nil) || 0 ),:class=>"list_count"%>
<%= hidden_field_tag "#{temp_field_name}[name]",field_name,:class=>"field_name"%>
-
<%= t("admin.infos.list")%>
+
<%= t(:list)%>
diff --git a/app/views/shared/attribute_field/_placeholder_block.html.erb b/app/views/shared/attribute_field/_placeholder_block.html.erb
index 9098d08d..5654b4da 100644
--- a/app/views/shared/attribute_field/_placeholder_block.html.erb
+++ b/app/views/shared/attribute_field/_placeholder_block.html.erb
@@ -1,6 +1,6 @@
<% values ||=[]%>
<%= content_tag :div,:class=>"control-group language-swich #{class_ext rescue "" }" do%>
-
<%= (defined? label_ext) ? label_ext : t("admin.infos.placeholder") %>
+
<%= (defined? label_ext) ? label_ext : t(:placeholder) %>
diff --git a/app/views/shared/preview/_modal_preview.html.erb b/app/views/shared/preview/_modal_preview.html.erb
index cad29773..741df400 100644
--- a/app/views/shared/preview/_modal_preview.html.erb
+++ b/app/views/shared/preview/_modal_preview.html.erb
@@ -1,7 +1,7 @@
diff --git a/config/application.rb b/config/application.rb
index f0e40fcc..0898a2e6 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -68,6 +68,10 @@ module Orbit
config.assets.enabled = true
#config.time_zone = 'Taipei'
ENV['TZ'] = 'Asia/Taipei'
+
+ config.to_prepare do
+ Devise::RegistrationsController.layout false
+ end
end
end
Orbit_Apps = []
diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb
index 817f12ea..1a997c5f 100644
--- a/config/initializers/devise.rb
+++ b/config/initializers/devise.rb
@@ -80,6 +80,7 @@ Devise.setup do |config|
# The time you want to timeout the user session without activity. After this
# time the user will be asked for credentials again.
# config.timeout_in = 10.minutes
+ config.timeout_in = 10.minutes
# ==> Configuration for :lockable
# Defines which strategy will be used to lock an account.
@@ -109,7 +110,6 @@ Devise.setup do |config|
# Turn scoped views on. Before rendering "sessions/new", it will first check for
# "users/sessions/new". It's turned off by default because it's slower if you
# are using only default views.
- # config.scoped_views = true
# Configure the default scope given to Warden. By default it's the first
# devise role declared in your routes.
diff --git a/config/locales/devise.zh_tw.yml b/config/locales/devise.zh_tw.yml
index d825f92e..0f2a5ad0 100644
--- a/config/locales/devise.zh_tw.yml
+++ b/config/locales/devise.zh_tw.yml
@@ -1,43 +1,42 @@
zh_tw:
- errors:
- messages:
- not_found: "沒有找到"
- already_confirmed: "已被確認過了"
- not_locked: "被鎖定了"
-
devise:
- failure:
- unauthenticated: '您需要先註冊、登入後才能繼續。'
- unconfirmed: '您的帳號需需要經過確認後,才能繼續。'
- ldap_invalid: '您的LDAP帳號錯誤'
- ldap_connection_failed: '與LDAP之間連線異常'
- ldap_pass_but_account_not_in_orbit: '很抱歉,您的LDAP帳號並不支援在此網站登入'
- locked: '您的帳號已被鎖定。'
- invalid: 'Email 或密碼是無效的。'
- invalid_token: '無效的認證代碼。'
- timeout: '您的登入時效過期,請重新登入,才能繼續。'
- inactive: '您的帳號尚未被啟用。'
- sessions:
- signed_in: '成功登入了。'
- signed_out: '成功登出了。'
- passwords:
- send_instructions: '您將在幾分鐘後收到一封電子郵件,內有重新設定密碼的步驟說明。'
- updated: '您的密碼已被修改,而您現在已重新登入。'
confirmations:
- send_instructions: '您將在幾分鐘後收到一封電子郵件,內有確認帳號的步驟說明。'
- confirmed: '您的帳號已經過確認,現在您已成功登入。'
- registrations:
- signed_up: '您已經成功的登錄,確認信件已送至您的 Email 信箱。'
- updated: '您已經成功的更新帳號資訊。'
- destroyed: '再會!您的帳號已被取消。有緣再會。'
- email_not_unique: '已被註冊'
- unlocks:
- send_instructions: '您將在幾分鐘後收到一封電子郵件,內有將帳號解除鎖定的步驟說明。'
- unlocked: '您的帳號已被解鎖,現在您已成功登入。'
+ confirmed: 您的帳號已經過確認,現在您已成功登入。
+ send_instructions: 您將在幾分鐘後收到一封電子郵件,內有確認帳號的步驟說明。
+ failure:
+ already_authenticated: 你已經登入。
+ inactive: 您的帳號尚未被啟用。
+ invalid: Email 或密碼是無效的。
+ invalid_token: 無效的認證代碼。
+ locked: 您的帳號已被鎖定。
+ timeout: 您的登入時效過期,請重新登入,才能繼續。
+ unauthenticated: 您需要先註冊,登入後才能繼續。
+ unconfirmed: 您的帳號需需要經過確認後,才能繼續。
mailer:
confirmation_instructions:
- subject: '確認步驟'
+ subject: 確認步驟
reset_password_instructions:
- subject: '重設密碼步驟'
+ subject: 重設密碼步驟
unlock_instructions:
- subject: '解鎖步驟'
+ subject: 解鎖步驟
+ passwords:
+ send_instructions: 您將在幾分鐘後收到一封電子郵件,內有重新設定密碼的步驟說明。
+ updated: 您的密碼已被修改,而您現在已重新登入。
+ registrations:
+ destroyed: 再會!您的帳號已被取消。有緣再會。
+ signed_up: 您已經成功註冊,確認信件已送至您的 Email 信箱。
+ updated: 您已經成功的更新帳號資訊。
+ sessions:
+ signed_in: 成功登入了。
+ signed_out: 成功登出了。
+ unlocks:
+ send_instructions: 您將在幾分鐘後收到一封電子郵件,內有將帳號解除鎖定的步驟說明。
+ unlocked: 您的帳號已被解鎖,現在您已成功登入。
+ errors:
+ messages:
+ already_confirmed: 已被確認過了
+ not_found: 沒有找到
+ not_locked: 被鎖定了
+ not_saved:
+ one: 有一個錯誤導致%{resource}不能被儲存:
+ other: 有 %{count} 個錯誤導致%{resource}不能被儲存:
\ No newline at end of file
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 60dfacbd..77e034ee 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -6,35 +6,58 @@ en:
denied:
app:
not_sub_manager: Access Denied for you are not SubManager for this app
- not_manager: Access Denied for you are not SubManager for this app
+ not_manager: Access Denied for you are not Manager for this app
not_authed_user: Access Denied for you are not User for this app
object: Access Denied for you don't have permission for this object
not_admin: Access Denied for you are not Admin
account_settings: Account settings
action: Action
ad:
+ chinese_1: 在套圖中出現次數 1次請輸入1
+ chinese_2: 輸入連結
+ chinese_3: 輸入標題
ab_fx: FX
+ add_link: Add a reference link
banner_best_size: Banner Best Size
best_size: Best size
+ best_size_example: "Ex: 500px x 300px"
new_image: New image
not_showing: Not showing
picture_list: Picture List
sec_place_holder: Enter 3 if 3 sec
+ select_fx: Select the effect type
+ set_dates: Set the image to start and end dates
+ set_range: Set the range time
showing: Showing
success_destroy_ad_image: Image successfully destroyed
trans_unit_sec: sec
transition_sec: Transition time
update_banner: Update Banner
+ upload_pictures: Upload pictures
widget_info_for_ad_image_size: "Best size with: %{best_size}"
ad_banner: AD Banner
add: Add
+ add_attribute_field: Add attribute field
+ add_image: Add image
add_item: Add item
+ add_member: Add member
+ add_more: Add more
+ address_modal:
+ default_title: Address
+ street_address: Street address
+ city: City
+ county: County
+ zip: ZIP
+ country: Country
addthis_tools:
add_to_bookmark: Add this to bookmark
admin: Admin
+ all: All
all_content: All Content
all_file: All File
all_member: All Member
+ all_plugin_summary: All plugin summary
+ all_plugins: All plugins
always_display_title: Always displayed in the title bar
app_auth:
list_setting_result: Authorization List
@@ -52,6 +75,7 @@ en:
fail: Removal of sub-manager failed
success: Sub-manager successfully removed
failed_no_user: Failed, no user
+ operation_not_permitted: Operation not permitted
approval:
not_pass: Not pass
not_pass_reason: Not pass reason
@@ -60,7 +84,9 @@ en:
stat: Approval status
user_list: Unit
approval_: Approval
+ archive: Archive
asset: Asset
+ attributes: Attributes
auth:
add_manager: Add Manager
add_sub_manager: Add SubManager
@@ -74,6 +100,8 @@ en:
back: Back
basic: Basic
browse: Browse
+ built_in: Built-in
+ calendar: Calendar
cancel: Cancel
cant_delete_self: You can not delete yourself.
cant_empty_star: Cannot be empty (*)
@@ -82,7 +110,9 @@ en:
category: Category
category_auth: Category Authorization
clear: Clear
+ close: Close
content: Content
+ courses: Courses
create:
error:
link: Error when creating link.
@@ -90,11 +120,27 @@ en:
fail: Creation failed
success:
asset_category: Asset category was successfully created.
+ co_author: Co-author was successfully created.
link: Link was successfully created.
page: Page was successfully created.
+ paper: Paper was successfully created.
user: User was successfully created.
create_: Create
+ cross_lang: 跨語言輸入
data: Data
+ date:
+ calendar: 紀年法
+ range: 本欄為時間區段
+ format: 格式
+ tw_calendar: 民國
+ minguo_calendar:
+ after: 民國
+ before: 民前
+ first_year: 民國元年
+ year: 年
+ month: 月
+ west_calendar: 西元
+ date_: Date
dashboard:
bulletin: Announcement
news_bulletin: News
@@ -103,11 +149,15 @@ en:
dashboard_: Dashboard
deadline: Deadline
default_css: Default CSS
- delete: Delete
- delete_file: Delete file
+ delete:
+ file: Delete file
+ success:
+ paper: Paper was successfully deleted.
+ delete_: Delete
description: Description
desktop: Desktop
disable: Disable
+ disabled: Disabled
dots: ●●●●●●
download: Download
downloaded: Downloaded
@@ -130,8 +180,11 @@ en:
upload: File upload
file_: File
file_type: File Type
+ followers: Followers
forgot_password: Forgot your password?
frequency: Frequency
+ frontend_data_count: Frontend data count
+ gallery: Gallery
help: Help
hidden: Hidden
hide: Hide
@@ -140,10 +193,14 @@ en:
horizontal: Horizontal
hot: Hot
image: Image
+ images: Images
info: Information
+ initial: 起始值
intro: Introduction
is_published: Is published
item: Item
+ item_name: Item name
+ javascripts: Javascripts
key: Key
last_modified: Last modified
layout: Layout
@@ -166,6 +223,8 @@ en:
text_area: Text Area
radio_button: Radio button
checkbox: Checkbox
+ locale: Locale
+ location: Location
login: Login
logout: Logout
mail:
@@ -180,20 +239,21 @@ en:
user_name: User Name
manager: Manager
manager: Manager
+ markup: Markup
+ markup_options: Markup options
+ markup_value: Markup value
me: Me
member: Member
menu_enabled_for: Menu enabled for
- modal:
- close: Close
- preview: Preview
module: Module
module_authorization: Module Authorization
more_plus: more+
most_visited_page: Most Visited Page
multilingual: Multilingual
name: Name
- nccu_c:
- nccu_ldap_uid: NCCU LDAP Account
+ need_home: You need a home page
+ neutral_title: Neutral title
+ neutral_for: Neutral for
new:
asset: New asset
banner: New banner
@@ -203,6 +263,7 @@ en:
user: New user
info: New user information
role: New user role
+ new_: New
news: News
no_: "No"
no_deadline: No deadline
@@ -222,40 +283,17 @@ en:
text: Text Area
passed: Approved
password: Password
-# : <<<<<<< HEAD
+ password_confirmation: Password Confirmation
pending: Pending
picture: Picture
+ placeholder: Placeholder
+ plugins: Plugins
postdate: Postdate
posted_by: Posted by
preview: Preview
+ profile: Profile
+ publications: Publications
purchase: Purchase
-# : =======
- register: Register
- remember_me: Remember me
- search_google: Search Google
- show: Show
- submit: Submit
- sure?: Are you sure?
- update: Update
- update_failed: Update failed
- view: View
- view_count: View count
- yes_: "Yes"
- addthis_tools:
- add_to_bookmark: Add this to bookmark
- all_content: All Content
- all_file: All File
- all_member: All Member
- content: Content
- data: Data
- file: File
- file_type: File Type
- hits: Hits
- item: Item
- member: Member
- module: Module
- most_visited_page: Most Visited Page
-# : >>>>>>> various_bugs
quantity: Quantity
quick_edit: Quick edit
recent_update: Recent Update
@@ -276,9 +314,14 @@ en:
sitesearch: Google Site Search
too_many: "Search about ' %{search_word} 'resulted more than %{exceed_num} items maybe try to search with more specific terms?"
unit_get: "Listed items created by :%{unit_name} Found %{item_num} items"
- search_nccu: Search NCCU
+ search_: Search
+ search_google: Search Google
setup_member: Member setup
show: Show
+ show_mode:
+ index: Index
+ summary: Summary
+ thumbnail: Thumbnail
site:
description: Site description
description_help: ''
@@ -298,6 +341,7 @@ en:
site_info: Site Info
sitemap: Sitemap
site_name: Site Name
+ size: Size
start: Start
start_date: Start date
statistics: Statistics
@@ -315,6 +359,7 @@ en:
module_page_lang_not_support: "We are sorry, this page is not available for English"
not_previewable: "Preview not support"
preview_only_for_img: "Preview only supprt with file type: jpg, png, gif, bmp"
+ sys_basic_form: User system info
system_info: System information
tag_cloud: Tag cloud
tags: Tags
@@ -329,15 +374,18 @@ en:
traffic: Traffic
type: Type
unit_name: Unit name
+ unzip_success: "App unzip procress is finished, please restart the server to apply effect"
up_to_date: Up-to-date
update:
error:
link: Error when updating link.
fail: Update failed
success:
+ co_author: Co-author was successfully updated.
content: Content was successfully updated.
link: Link was successfully updated.
page: Page was successfully updated.
+ paper: Paper was successfully updated.
user: User was successfully updated.
success_: Successfully updated
update_: Update
@@ -354,243 +402,3 @@ en:
visitors_this_year: This year's visitors
visitors_today: Today's visitors
yes_: "Yes"
-
-# : <<<<<<< HEAD
- nccu:
- date: Date
- file: File
- file_description: Description
- file_name: Name
- link_name: Name
- picture: Picture
- selected_file: File
-# : =======
- errors:
- at_least_one: must at least have one value
-
- # admin:
- # access:
- # denied:
- # app:
- # not_sub_manager: Access Denied for you are not SubManager for this app
- # not_manager: Access Denied for you are not SubManager for this app
- # not_authed_user: Access Denied for you are not User for this app
- # not_admin: Access Denied for you are not Admin
- # object: "Access Denied for you don't have permission for this object"
- # action: Action
- # ad_banner: AD Banner
- # orbit_gallery: Gallery
- # calendar: Calendar
- # ad:
- # sec_place_holder: Enter 3 if 3 sec
- # ab_fx: FX
- # all_banners: AdBanner list
- # banner_best_size: Banner Best Size
- # best_size: Best size
- # new_banner: New banner
- # new_image: New image
- # showing: Showing
- # not_showing: NotShowing
- # picture_list: Picture List
- # title: Title
- # transition_sec: Transition time
- # trans_unit_sec: sec
- # update_banner: Update Banner
- # widget_info_for_ad_image_size: "Best size with: %{best_size}"
- # add: Add
- # add_item: Add item
- # add_language: Add language
- # add_drop_down_item: +Add Menu Item
- # admin: Admin
- # action: Action
- # all_articles: List
- # always_display_title: Always displayed in the title bar
- # announcement: Announcement
- # asset: Asset
- # assets:
- # file: File
- # album: Album
- # video: Video
- # book: Book
- # attributes: Attributes
- # author: Author
- # calendar: Calendar
- # gprs: GPS
- # cant_delete_self: You can not delete yourself.
- # cant_revoke_self_admin: You can not revoke your admin role yourself.
- # category: Category
- # choose_file: Choose a file...
- # class: Class
- # content: Content
- # create_error_link: Error when creating link.
- # create_error_page: Error when creating page.
- # create_success_home: Homepage was successfully created.
- # create_success_layout: Layout was successfully created.
- # create_success_link: Link was successfully created.
- # create_success_page: Page was successfully created.
- # create_success_snippet: Snippet was successfully created.
- # create_success_user: User was successfully created.
- # data: Data
- # dashboard: Dashboard
- # delete_language: Delete language
- # description: Description
- # design: Template
- # disable_language: Disable language
- # editing_home: Editing homepage
- # editing_layout: Editing layout
- # editing_link: Editing link
- # editing_page: Editing page
- # editing_snippet: Editing snippet
- # editing_info: Editing user information
- # editing_role: Editing user role
- # email: Email
- # enable_language: Enable language
- # enabled_for: Enabled for
- # file_name: Filename
- # file_size: File size
- # file_upload: File upload
- # format: Format
- # home: Home
- # id: ID
- # info: Information
- # intro: Introduction
- # is_published: Is published
- # item: Item
- # key: Key
- # keywords: Keywords
- # language: Language
- # layout: Layout
- # layout_name: Layout name
- # links: Links
- # link: Links
- # list_assets: Assets list
- # list_designs: Designs list
- # list_items: Items list
- # list_puchases: Purchases list
- # list_snippets: Snippets list
- # list_users: Users list
- # list_infos: User information list
- # list_roles: User roles list
- # mail_address: Address
- # mail_port: Port
- # mail_domain: Domain
- # mail_authentication: Authentication
- # mail_user_name: User Name
- # mail_password: Password
- # mail_tls: TLS
- # mail_enable_starttls_auto: Enable Start TLS Auto
- # member: Member
- # menu_enabled_for: Menu enabled for
- # module:
- # authorization: Module Authorization
- # move_down: Move down
- # move_up: Move up
- # multilingual: Multilingual
- # my_avatar: My Avatar
- # no_home_page: You don't have a homepage
- # no_layout: You don't have a layout
- # name: Name
- # nccu: NCCU Custom
- # nccu_c:
- # nccu_ldap_uid: NCCU LDAP Account
- # new_asset: New asset
- # new_component: New component
- # new_design: New design
- # new_home: New homepage
- # new_layout: New layout
- # new_link: New link
- # new_page: New page
- # new_snippet: New snippet
- # new_user: New user
- # new_info: New user information
- # new_role: New user role
- # news: News
- # non_multilingual: Non multilingual
- # object_auth:
- # list_title_of_users: %{auth_title} Auth List
- # update_done: Update done,reulst showing in list
- # update_failed: Update failed
- # options: Options
- # orig_upload_file: Original filename
- # page: Page
- # page_context:
- # edit: Edit
- # ob_auth:
- # edit: Category authorization
- # page_part_kinds:
- # text: Text Area
- # public_r_tag: System Widget
- # module_widget: Plug-in Module Widget
- # position: Position
- # published?: Published?
- # purchase: Purchase
- # registered: Registered
- # role: Role
- # roles: Roles
- # setup_member: Member setup
- # setup_translations: Translations setup
- # setup_designs: Designs setup
- # site: Site
- # site_description: Site description
- # site_footer: Site footer
- # site_settings: Site Setting
- # site_sub_menu: Site sub-menu
- # site_title: Site title
- # super_pages: Super pages
- # structure: Structure
-# : >>>>>>> various_bugs
- tags: Tags
- url: URL
-# : <<<<<<< HEAD
-# : =======
- user: User
- user_new_interface:
- sys_basic_form: User system info
- password: Password
- password_confirmation: Password Confirmation
- email: User account
- user_role:
- auth:
- all_member: All Member
- manager: Manager
- sub_mamanger: SubManager
- by_role: By Role
- by_sub_role: By SubRole
- block_list: Block List
- privilege_list: Privilege List
- add_manager: Add Manager
- add_sub_manager: Add SubManager
- add_to_block_list: Add to block List
- add_to_privilege_list: Add to privilege List
- auth_by: -AuthBy %{user_display_name}
- info: User information
- panel: User panel
- role: User role
-
- dashboard:
- bulletin: Announcement
- news_bulletin: News
- page_context: Page
- web_link: Link
-
- panel:
-
- modal:
- close: Close
- preview: Preview
- sys:
- not_previewable: "Preview not support"
- limit_of_upload_file_size: "Upload file must be less than: %{best_size}"
- preview_only_for_img: "Preview only supprt with file type:jpg,png,gif,bmp"
- can_not_display_due_to_no_context: "Can not display due to no context for English"
- module_page_lang_not_support: "We are sorry, this page is not available for English"
- search:
- not_found: "NOT FOUND"
- domains: Google Search Domains
- site_search: Site Search
- sitesearch: Google Site Search
- site_setting_help: Please Enter the search argument for Google search.
- result_get: "Searched about ' %{search_word} ' Found %{item_num} items"
- too_many: "Search about ' %{search_word} 'resulted more than %{exceed_num} items maybe try to search with more specific terms?"
- unit_get: "Listed items created by :%{unit_name} Found %{item_num} items"
-# : >>>>>>> various_bugs
diff --git a/config/locales/mongoid.zh_tw.yml b/config/locales/mongoid.zh_tw.yml
new file mode 100644
index 00000000..2d3116eb
--- /dev/null
+++ b/config/locales/mongoid.zh_tw.yml
@@ -0,0 +1,70 @@
+zh_tw:
+ mongoid:
+ errors:
+ messages:
+ blank:
+ 不能为空
+ callbacks:
+ "Calling %{method} on %{klass} resulted in a false return from a callback."
+ taken:
+ 已占用
+ document_not_found:
+ 没有发现类是%{klass}id(s)是%{identifiers}的文档
+ eager_load:
+ "Eager loading :%{name} is not supported due to it being a many-to-many
+ or polymorphic belongs_to relation."
+ invalid_database:
+ 数据库应该是Mongo::DB,而不是%{name}.
+ invalid_time:
+ "'%{value}' is not a valid Time."
+ invalid_type:
+ 在类%{klass}中定义了字段,实际值是%{value}的%{other}.
+ invalid_options:
+ "Invalid option :%{invalid} provided to relation :%{name}. Valid options
+ are: %{valid}."
+ unsupported_version:
+ MongoDB %{version} 版本已过期,请升级到 %{mongo_version}.
+ validations:
+ 校验失败 - %{errors}.
+ invalid_collection:
+ 不允许直接访问嵌入式的集合%{klass} , 请从文档的根访问集合.
+ invalid_field:
+ 字段的名字不允许为 %{name}. 你不应该定义跟Mongoid内部属性或者方法相同的名字,详细请看Use Document#instance_methods.
+ too_many_nested_attribute_records:
+ 被关联的%{association} 嵌入式属性不能超过 %{limit}.
+ embedded_in_must_have_inverse_of:
+ embedded_in的关联属性必须包含inverse_of.
+ dependent_only_references_one_or_many:
+ dependent => destroy|delete 选项只有在references_one或者references_many时候有效.
+ association_cant_have_inverse_of:
+ 在当前的关联中,不允许定义inverse_of去,其只有在embedded_in或者references_many是数组的情况下使用
+ unsaved_document:
+ You cannot call create or create! through a relational association
+ relation (%{document}) who's parent (%{base}) is not already saved.
+ mixed_relations:
+ Referencing a(n) %{embedded} document from the %{root} document via a
+ relational association is not allowed since the %{embedded} is embedded.
+ no_environment:
+ "Mongoid attempted to find the appropriate environment but no Rails.env,
+ Sinatra::Base.environment, or RACK_ENV could be found."
+ scope_overwrite:
+ "Cannot create scope :%{scope_name}, because of existing method
+ %{model_name}.%{scope_name}."
+ blank_on_locale: "can't be blank in %{in_locale}"
+
+
+ models:
+ news_bulletin: 新聞
+ bulletin: 公告
+ ad_banner: 廣告輪播
+ web_link: 連結管理
+ attributes:
+ news_bulletin:
+ title: 新聞標題
+ bulletin:
+ title: 公告標題
+ ad_banner:
+ title: 標題
+ web_link:
+ title: 名稱
+ url: 路徑
diff --git a/config/locales/rails.yml b/config/locales/rails.yml
deleted file mode 100644
index 058a48e8..00000000
--- a/config/locales/rails.yml
+++ /dev/null
@@ -1,132 +0,0 @@
-# Chinese (Taiwan) translations for Ruby on Rails
-# by tsechingho (http://github.com/tsechingho)
-
-:zh_tw:
- date:
- formats:
- default: "%Y-%m-%d"
- short: "%b%d日"
- long: "%Y年%b%d日"
- day_names: [星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
- abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
- month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
- abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
- order: [ :year, :month, :day ]
-
- time:
- formats:
- default: "%Y年%b%d日 %A %H:%M:%S %Z"
- short: "%b%d日 %H:%M"
- long: "%Y年%b%d日 %H:%M"
- am: "上午"
- pm: "下午"
-
- datetime:
- distance_in_words:
- half_a_minute: "半分鐘"
- less_than_x_seconds:
- one: "不到一秒"
- other: "不到 {{count}} 秒"
- x_seconds:
- one: "一秒"
- other: "{{count}} 秒"
- less_than_x_minutes:
- one: "不到一分鐘"
- other: "不到 {{count}} 分鐘"
- x_minutes:
- one: "一分鐘"
- other: "{{count}} 分鐘"
- about_x_hours:
- one: "大約一小時"
- other: "大約 {{count}} 小時"
- x_days:
- one: "一天"
- other: "{{count}} 天"
- about_x_months:
- one: "大約一個月"
- other: "大約 {{count}} 個月"
- x_months:
- one: "一個月"
- other: "{{count}} 個月"
- about_x_years:
- one: "大約一年"
- other: "大約 {{count}} 年"
- over_x_years:
- one: "一年多"
- other: "{{count}} 年多"
- prompts:
- year: "年"
- month: "月"
- day: "日"
- hour: "時"
- minute: "分"
- second: "秒"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- currency:
- format:
- format: "%u %n"
- unit: "NT$"
- separator: "."
- delimiter: ","
- precision: 2
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 1
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " 和 "
- last_word_connector: ", 和 "
-
- activerecord:
- errors:
- template:
- header:
- one: "有 1 個錯誤發生使得「{{model}}」無法被儲存。"
- other: "有 {{count}} 個錯誤發生使得「{{model}}」無法被儲存。"
- body: "下面欄位有問題:"
- messages:
- inclusion: "沒有包含在列表中"
- exclusion: "是被保留的"
- invalid: "是無效的"
- confirmation: "不符合確認值"
- accepted: "必須是可被接受的"
- empty: "不能留空"
- blank: "不能是空白字元"
- too_long: "過長(最長是 {{count}} 個字)"
- too_short: "過短(最短是 {{count}} 個字)"
- wrong_length: "字數錯誤(必須是 {{count}} 個字)"
- taken: "已經被使用"
- not_a_number: "不是數字"
- greater_than: "必須大於 {{count}}"
- greater_than_or_equal_to: "必須大於或等於 {{count}}"
- equal_to: "必須等於 {{count}}"
- less_than: "必須小於 {{count}}"
- less_than_or_equal_to: "必須小於或等於 {{count}}"
- odd: "必須是奇數"
- even: "必須是偶數"
-
-
diff --git a/config/locales/rails.zh_tw.yml b/config/locales/rails.zh_tw.yml
new file mode 100644
index 00000000..c1e840af
--- /dev/null
+++ b/config/locales/rails.zh_tw.yml
@@ -0,0 +1,202 @@
+# Chinese (Taiwan) translations for Ruby on Rails
+# by tsechingho (http://github.com/tsechingho)
+
+zh_tw:
+ date:
+ abbr_day_names:
+ - 日
+ - 一
+ - 二
+ - 三
+ - 四
+ - 五
+ - 六
+ abbr_month_names:
+ -
+ - 1月
+ - 2月
+ - 3月
+ - 4月
+ - 5月
+ - 6月
+ - 7月
+ - 8月
+ - 9月
+ - 10月
+ - 11月
+ - 12月
+ day_names:
+ - 星期日
+ - 星期一
+ - 星期二
+ - 星期三
+ - 星期四
+ - 星期五
+ - 星期六
+ formats:
+ default: ! '%Y-%m-%d'
+ long: ! '%Y年%b%d日'
+ short: ! '%b%d日'
+ month_names:
+ -
+ - 一月
+ - 二月
+ - 三月
+ - 四月
+ - 五月
+ - 六月
+ - 七月
+ - 八月
+ - 九月
+ - 十月
+ - 十一月
+ - 十二月
+ order:
+ - :year
+ - :month
+ - :day
+ datetime:
+ distance_in_words:
+ about_x_hours:
+ one: 大約一小時
+ other: 大約 %{count} 小時
+ about_x_months:
+ one: 大約一個月
+ other: 大約 %{count} 個月
+ about_x_years:
+ one: 大約一年
+ other: 大約 %{count} 年
+ almost_x_years:
+ one: 接近一年
+ other: 接近 %{count} 年
+ half_a_minute: 半分鐘
+ less_than_x_minutes:
+ one: 不到一分鐘
+ other: 不到 %{count} 分鐘
+ less_than_x_seconds:
+ one: 不到一秒
+ other: 不到 %{count} 秒
+ over_x_years:
+ one: 一年多
+ other: ! '%{count} 年多'
+ x_days:
+ one: 一天
+ other: ! '%{count} 天'
+ x_minutes:
+ one: 一分鐘
+ other: ! '%{count} 分鐘'
+ x_months:
+ one: 一個月
+ other: ! '%{count} 個月'
+ x_seconds:
+ one: 一秒
+ other: ! '%{count} 秒'
+ prompts:
+ day: 日
+ hour: 時
+ minute: 分
+ month: 月
+ second: 秒
+ year: 年
+ errors: &errors
+ format: ! '%{attribute} %{message}'
+ messages:
+ accepted: 必須是可被接受的
+ blank: 不能是空白字元
+ confirmation: 不符合確認值
+ empty: 不能留空
+ equal_to: 必須等於 %{count}
+ even: 必須是偶數
+ exclusion: 是被保留的關鍵字
+ greater_than: 必須大於 %{count}
+ greater_than_or_equal_to: 必須大於或等於 %{count}
+ inclusion: 沒有包含在列表中
+ invalid: 是無效的
+ less_than: 必須小於 %{count}
+ less_than_or_equal_to: 必須小於或等於 %{count}
+ not_a_number: 不是數字
+ not_an_integer: 必須是整數
+ odd: 必須是奇數
+ record_invalid: ! '校驗失敗: %{errors}'
+ taken: 已經被使用
+ too_long: 過長(最長是 %{count} 個字)
+ too_short: 過短(最短是 %{count} 個字)
+ wrong_length: 字數錯誤(必須是 %{count} 個字)
+ template:
+ body: 以下欄位發生問題:
+ header:
+ one: 有 1 個錯誤發生使得「%{model}」無法被儲存。
+ other: 有 %{count} 個錯誤發生使得「%{model}」無法被儲存。
+ helpers:
+ select:
+ prompt: 請選擇
+ submit:
+ create: 新增%{model}
+ submit: 儲存%{model}
+ update: 更新%{model}
+ number:
+ currency:
+ format:
+ delimiter: ! ','
+ format: ! '%u %n'
+ precision: 2
+ separator: .
+ significant: false
+ strip_insignificant_zeros: false
+ unit: NT$
+ format:
+ delimiter: ! ','
+ precision: 3
+ separator: .
+ significant: false
+ strip_insignificant_zeros: false
+ human:
+ decimal_units:
+ format: ! '%n %u'
+ units:
+ billion: 十億
+ million: 百萬
+ quadrillion: 千兆
+ thousand: 千
+ trillion: 兆
+ unit: ''
+ format:
+ delimiter: ''
+ precision: 1
+ significant: false
+ strip_insignificant_zeros: false
+ storage_units:
+ format: ! '%n %u'
+ units:
+ byte:
+ one: Byte
+ other: Bytes
+ gb: GB
+ kb: KB
+ mb: MB
+ tb: TB
+ percentage:
+ format:
+ delimiter: ''
+ precision:
+ format:
+ delimiter: ''
+ support:
+ array:
+ last_word_connector: ! ', 和 '
+ two_words_connector: ! ' 和 '
+ words_connector: ! ', '
+ time:
+ am: 上午
+ formats:
+ default: ! '%Y年%b%d日 %A %H:%M:%S %Z'
+ long: ! '%Y年%b%d日 %H:%M'
+ short: ! '%b%d日 %H:%M'
+ pm: 下午
+ # remove these aliases after 'activemodel' and 'activerecord' namespaces are removed from Rails repository
+ activemodel:
+ errors:
+ <<: *errors
+ activerecord:
+ errors:
+ <<: *errors
\ No newline at end of file
diff --git a/config/locales/zh_tw.yml b/config/locales/zh_tw.yml
index 1573323b..341be345 100644
--- a/config/locales/zh_tw.yml
+++ b/config/locales/zh_tw.yml
@@ -13,28 +13,51 @@ zh_tw:
account_settings: 帳號設定
action: 操作
ad:
+ chinese_1: 在套圖中出現次數 1次請輸入1
+ chinese_2: 輸入連結
+ chinese_3: 輸入標題
ab_fx: 轉場效果
+ add_link: Add a reference link
banner_best_size: 輪播圖片尺寸
best_size: 最佳尺寸
+ best_size_example: "Ex: 500px x 300px"
new_image: 新增輪播圖片
not_showing: 沒有顯示
picture_list: 圖片列表
sec_place_holder: 每張輪播圖片顯示秒數(3秒就請輸入3)
+ select_fx: Select the effect type
+ set_dates: Set the image to start and end dates
+ set_range: Set the range time
showing: 顯示中
success_destroy_ad_image: 刪除圖片成功
trans_unit_sec: 秒
transition_sec: 轉場單位時間
update_banner: 更新輪播
+ upload_pictures: Upload pictures
widget_info_for_ad_image_size: "此區塊圖片尺寸使用: %{best_size}"
ad_banner: 廣告輪播
add: 新增
+ add_attribute_field: Add attribute field
+ add_image: Add image
add_item: 新增項目
+ add_member: Add member
+ add_more: Add more
+ address_modal:
+ default_title: 地址
+ street_address: 街道地址
+ city: 城市
+ county: 縣市
+ zip: 郵遞區號
+ country: 國家/地區
addthis_tools:
add_to_bookmark: 加入書籤
admin: 管理員
+ all: All
all_content: 所有內容
all_file: 所有檔案
all_member: 所有會員
+ all_plugin_summary: All plugin summary
+ all_plugins: All plugins
always_display_title: 永遠顯示標題
app_auth:
list_setting_result: 授權列表
@@ -52,6 +75,7 @@ zh_tw:
fail: 刪除次管理員失敗
success: 刪除次管理員成功
failed_no_user: 失敗,不是使用者
+ operation_not_permitted: Operation not permitted
approval:
not_pass: 拒絕
not_pass_reason: 拒絕原因
@@ -60,7 +84,9 @@ zh_tw:
stat: 審核狀態
user_list: 使用者列表
approval_: 審核
+ archive: Archive
asset: 資產
+ attributes: 屬性
auth:
add_manager: 新增管理員
add_sub_manager: 新增次管理員
@@ -74,6 +100,8 @@ zh_tw:
back: 回上一步
basic: 基本
browse: 瀏覽
+ built_in: Built-in
+ calendar: Calendar
cancel: 取消
cant_delete_self: 不可以刪除自己
cant_empty_star: 不能為空白 (*)
@@ -82,7 +110,9 @@ zh_tw:
category: 類別
category_auth: 類別授權
clear: 清除
+ close: Close
content: 內容
+ courses: 開課數
create:
error:
link: 建立連結時出錯
@@ -90,24 +120,44 @@ zh_tw:
fail: 建立失敗
success:
asset_category: 資產類別已成功建立
+ co_author: Co-author was successfully created.
+ link: Link was successfully created.
link: 連結已成功建立
page: 頁面已成功建立
user: 使用者已成功建立
create_: 建立
+ cross_lang: 跨語言輸入
data: 資料
+ date:
+ calendar: 紀年法
+ range: 本欄為時間區段
+ format: 格式
+ tw_calendar: 民國
+ minguo_calendar:
+ after: 民國
+ before: 民前
+ first_year: 民國元年
+ year: 年
+ month: 月
+ west_calendar: 西元
+ date_: Date
dashboard:
bulletin: 公告
news_bulletin: 新聞
- page_context: 頁面內容
- web_link: 連結
+ page_context: 頁面
+ web_link: 鏈接
dashboard_: 儀表版
deadline: 最後期限
default_css: 預設樣式表
- delete: 刪除
- delete_file: 刪除檔案
+ delete:
+ file: 刪除檔案
+ success:
+ paper: Paper was successfully deleted.
+ delete_: 刪除
description: 描述
desktop: 桌面
disable: 關閉
+ disabled: Disabled
dots: ●●●●●●
download: 下載
downloaded: 已下載
@@ -130,8 +180,11 @@ zh_tw:
upload: 上傳檔案
file_: 檔案
file_type: 檔案類型
+ followers: Followers
forgot_password: 忘記密碼?
frequency: 頻率
+ frontend_data_count: Frontend data count
+ gallery: Gallery
help: 幫助
hidden: 隱藏的
hide: 隱藏
@@ -140,10 +193,14 @@ zh_tw:
horizontal: 水平的
hot: 熱門
image: 圖片
+ images: Images
info: 信息
+ initial: 起始值
intro: 簡介
is_published: 已發佈
item: 項目
+ item_name: Item name
+ javascripts: Javascripts
key: 索引
last_modified: 最後修改者
layout: 範本
@@ -158,25 +215,16 @@ zh_tw:
user: 使用者列表
list_: 列表
list_lower: 列表
- address_modal:
- default_title: 地址
- street_address: 街道地址
- city: 城市
- county: 縣市
- zip: 郵遞區號
- country: 國家/地區
- langs:
- zh_tw: 中文
- en: 英文
lists:
markups:
- address: 地址欄位
text_field: 文字輸入框
select: 下拉選單
date: 日期
text_area: 文字輸入方塊
radio_button: 單選
checkbox: 多選
+ locale: Locale
+ location: Location
login: 登入
logout: 登出
mail:
@@ -191,20 +239,21 @@ zh_tw:
user_name: 電子郵件帳號
manager: 管理者
manager: 管理者
- me: 我
+ markup: 輸入模式
+ markup_options: Markup options
+ markup_value: Markup value
+ me: Me
member: 會員
menu_enabled_for: 選單啟用
- modal:
- close: 關閉
- preview: 預覽
- module: 模組
+ module: Module
module_authorization: 模組授權
more_plus: 更多+
most_visited_page: 最多瀏覽頁面
multilingual: 多語系
name: 名稱
- nccu_c:
- nccu_ldap_uid: 政治大學LDAP帳號
+ need_home: You need a home page
+ neutral_title: Neutral title
+ neutral_for: Neutral for
new:
asset: 新增資產
banner: 新增橫幅
@@ -214,6 +263,7 @@ zh_tw:
user: 新增使用者
info: 新增使用者資訊
role: 新增使用者角色
+ new_: New
news: 新聞
no_: "不是"
no_deadline: 沒有期限
@@ -233,11 +283,16 @@ zh_tw:
text: 文字區域
passed: 通過審核
password: 密碼
+ password_confirmation: 確認密碼
pending: 待審核
picture: 圖片
+ placeholder: Placeholder
+ plugins: Plugins
postdate: 張貼日期
posted_by: 張貼人
preview: 預覽
+ profile: Profile
+ publications: Publications
purchase: 購買
quantity: 數量
quick_edit: 快速編輯
@@ -249,9 +304,8 @@ zh_tw:
rejected_reason: '拒絕原因:'
rejected_reason_empty: "拒絕核准, 沒有參考資訊"
related_links: 相關連結
- remember_me: 記住我
- role: 角色
- Roles: 角色
+ role: 身份
+ roles: 身份
ruling_site: 銳綸網站
search:
domains: Google Search Domains
@@ -260,12 +314,15 @@ zh_tw:
sitesearch: 全站搜尋
too_many: "搜尋有關 ' %{search_word} '尋找到超過 %{exceed_num} 筆資料,請嘗試加入更多關鍵字縮小搜尋範圍,以作更精確的搜尋?"
unit_get: "列出由 :%{unit_name}發佈的資料,共有%{item_num}筆"
+ search_: Search
search_google: 搜尋Google
- search_nccu: 搜尋政治大學
setup_member: 會員設定
show: 顯示
+ show_mode:
+ index: 清單
+ summary: 摘要
+ thumbnail: 縮圖
site:
- default_image: 預設圖像
description: 網站描述
description_help: ''
footer: 網站頁尾
@@ -284,6 +341,7 @@ zh_tw:
site_info: 網站資訊
sitemap: 網站地圖
site_name: 網站名稱
+ size: Size
start: 開始
start_date: 開始日期
statistics: 統計資訊
@@ -301,6 +359,7 @@ zh_tw:
module_page_lang_not_support: "很抱歉,此頁面沒有開放中文版本"
not_previewable: "不支援預覽"
preview_only_for_img: "預覽僅支援:jpg,png,gif,bmp等圖片格式"
+ sys_basic_form: 系統基本資料表
system_info: 系統資訊
tag_cloud: 標籤雲
tags: 標籤
@@ -315,18 +374,20 @@ zh_tw:
traffic: 流量
type: 類型
unit_name: 單位名稱
+ unzip_success: "App unzip procress is finished, please restart the server to apply effect"
up_to_date: 最新版本
update:
error:
link: 更新連接時出錯
fail: 更新消息
success:
+ co_author: Co-author was successfully updated.
content: 內容已更新成功
link: 連結已更新成功
page: 頁面已更新成功
- user: 使用者已更新成功
- success_: 更新成功
- update_: 更新
+ paper: Paper was successfully updated.
+ user: User was successfully updated.
+ success_: S使用者已更新成功
update_at: 最後更新時間
url: 網址
use_status: ''
@@ -340,567 +401,3 @@ zh_tw:
visitors_this_year: 今年造訪人次
visitors_today: 今日造訪人次
yes_: "是"
-
- nccu:
- date: 起迄日期
- file: 附加檔案
- file_description: 檔案描述
- file_name: 檔案名稱
- link_name: 連結名稱
- picture: 刊頭圖片
- selected_file: 選擇檔案
- tags: 頁籤
- url: 連結位置
-
-
-
-
-
-
-# : <<<<<<< HEAD
-# : =======
- errors:
- at_least_one: 必須至少有一個值
- admin:
- infos:
- add_attribute_field: 新增
- save: 儲存
- initial: 起始值
- markup: 輸入模式
- item_name: 資料表名稱
- name: 名稱
- options: 選項
- :cross_lang: 跨語言輸入
- add_more: 使用者可自行延伸欄位
- add: 新增
- placeholder: 輸入協助
- type: 類型
- placeholder: 提示內容
- list: 自定選單
- is_range: 是
- not_range: 否
- date:
- claendar: 紀年法
- range: 本欄為時間區段
- format: 格式
- tw_claendar: 民國
- minguo_calendar:
- after: 民國
- before: 民前
- first_year: 民國元年
- year: 年
- month: 月
- west_claendar: 西元
- access:
- denied:
- app:
- not_sub_manager: 拒絕存取因你不是此應用程式次管理員
- not_manager: 拒絕存取因你不是此應用程式管理員
- not_authed_user: 拒絕存取因你不是此應用程式授權使用者
- not_admin: 拒絕存取因你不是此應用程式次管理員
- object: 拒絕存取因你不是網站管理者
- action: 操作
- ad_banner: 廣告輪播
- orbit_gallery: 活動花絮
- ad:
- sec_place_holder: 3秒請輸入3
- ab_fx: 轉場特效
- all_banners: 輪播清單
- banner_best_size: Banner 尺寸
- best_size: 最佳尺寸
- cate_auth: 分類授權
- delete_banner: 刪除整組輪播
- new_banner: 新增輪播
- new_image: 新增橫幅
- showing: 顯示中
- not_showing: 沒有顯示
- picture_list: 圖片列表
- title: 標題
- transition_sec: 轉場單位時間
- trans_unit_sec: 秒
- update_banner: 更新輪播
- widget_info_for_ad_image_size: "此區塊圖片尺寸請使用 %{best_size}"
- add: 新增
- add_item: 新增項目
- add_language: 新增語言
- add_drop_down_item: +增加Orbit選單
- admin: 網站管理者
- all_articles: 列表
- always_display_title: 永遠顯示於標題列
- announcement: 公告管理
- asset: 資產
- assets:
- file: 檔案
- album: 相簿
- video: 影片
- book: 書籍
- attributes: 屬性
- author: 作者
- calendar: 行事曆
- cant_delete_self: 您不可以刪除自己。
- cant_revoke_self_admin: 您不可以撤銷自己的管理身份。
- category: 類別
- choose_file: 請選擇一個文件...
- class: 階級
- content: 內容
- contenteditable:
- update_done: 更新完成
- update_failed: 更新失敗
- create_error_link: 新增連接時出錯。
- create_error_page: 新增頁面時出錯。
- create_success_home: 首頁已成功新增。
- create_success_layout: 樣板已成功新增。
- create_success_link: 連結已成功新增。
- create_success_page: 頁面已成功新增。
- create_success_home: 首頁已成功新增。
- create_success_layout: 佈局已成功新增。
- create_success_link: 連結已成功新增。
- create_success_page: 頁面已成功新增。
- create_success_snippet: 片段已成功新增。
- create_success_user: 用戶已成功新增。。
- dashboard: 儀表板
- data: 選擇檔案
- delete_language: 刪除語言
- description: 描述
- design: 版型管理
- disable_language: 禁用語言
- edit: 編輯
- editing_home: 編輯首頁
- editing_layout: 編輯樣板
- editing_link: 編輯連結
- editing_page: 編輯頁面
- editing_snippet: 編輯片段
- editing_info: 編輯用戶資料
- editing_role: 編輯用戶身份
- email: Email
- enable_language: 啟用語言
- enabled_for: 啟用
- file_name: 檔名
- file_size: 檔案大小
- file_upload: 文件上載
- format: 格式
- home: 首頁
- id: ID
- info: 資料
- intro: 簡介
- is_published: 被出版
- item: 網站架構
- key: 關鍵
- keywords: 關鍵字
- language: 語言
- layout: 佈局
- layout_name: 佈局名字
- link: 連結管理
- links: 網路資源
- list_assets: 資產列表
- list_designs: 設計列表
- list_items: 項目列表
- list_puchases: 購買清單
- list_snippets: 斷片列表
- list_users: 使用列表
- list_infos: 用戶資料列表
- list_roles: 用戶身份列表
- mail_address: 郵件地址
- mail_port: 傳輸埠
- mail_domain: 網域名稱
- mail_authentication: 認證
- mail_user_name: 帳號
- mail_password: 密碼
- mail_tls: TLS
- mail_enable_starttls_auto: Enable Start TLS Auto
- member: 會員
- menu_enabled_for: 選單啟用
- module:
- authorization: 模組授權
- move_down: 往下移
- move_up: 往上移
- multilingual: 多種語言
- my_avatar: 我的頭像
- no_home_page: 您沒有首頁
- no_layout: 您沒有佈局
- name: 名稱
- new_admin:
- side_bar:
- all_user: 所有使用者
- add_user: 新增使用者
- user_roles: 角色
- user_info: 使用者資訊
- user: 會員
- users:
- all_plugin_summary: 全部
- profile: 基本資料
- roles:
- staff: 職員資料
- student: 學生資料
- teacher: 教師資料
- action:
- add: 新增
- edit: 編輯
- delete: 刪除
- quick_edit: 快速編輯
- next: 下一頁
- prev: 上一頁
- attributes:
- roles: 角色
- name: 名稱
- publications: 出版數
- courses: 開課數
- followers: 被關注數
- show_mode:
- index: 清單
- summary: 摘要
- thumbnail: 縮圖
- table_header:
- status: 狀態
- category: 分類
- tags: 標籤
- clear_filter: 重置
- new_asset: 新增資產
- new_component: 新增元件
- new_design: 新設計
- new_home: 新增首頁
- new_layout: 新增樣板
- new_link: 新增連結
- new_page: 新增頁面
- new_snippet: 新增片段
- new_user: 新增使用
- new_info: 新增用戶資料
- new_role: 新增用戶身份
- news: 新聞
- non_multilingual:
- object_auth:
- list_title_of_users: 授權清單-%{auth_title}
- update_done: 更新完成,結果顯示於清單
- update_failed: 更新失敗
- options: 選項
- orig_upload_file: 原上傳檔名
- page: 頁面管理
- page_context:
- edit: 編輯
- ob_auth:
- edit: 分類授權
- page_part_kinds:
- text: 文字區塊
- public_r_tag: 系統模塊
- module_widget: 外掛模塊
- position: 位置
- published?: 發布?
- purchase: 購買
- role: 身份
- roles: 身份
- site_description: 網站描述
- site_footer: 網站頁尾
- site_settings: 基本設定
- site_sub_menu: 網站次選單
- site_title: 網站標題
- setup_member: 成員設置
- setup_translations: 語系設定
- setup_designs: 版型設定
- site: 網站
- site_setting: 網站設定
- super_pages: 可編頁面
- structure: 網站結構
- tags: 標籤
- title: 標題
- translation: 翻譯
- type: 類型
- up_to_date: 最新版本
- update_error_link: 更新鏈接時出現錯誤。
- update_error_page: 更新頁面時出現錯誤。
- update_success_content: 內容已成功更新。
- update_success_home: 首頁已成功更新。
- update_success_layout: 樣板已成功更新。
- update_success_link: 連結已成功更新。
- update_success_page: 頁面已成功更新。
- update_success_snippet: 片段已成功更新。
- update_success_user: 用戶已成功更新
- upload_design: 上傳設計
- url: URL
- user: 用戶
- user_new_interface:
- sys_basic_form: 系統基本資料表
- password: 密碼
- password_confirmation: 確認密碼
- email: 使用者帳號信箱
- user_role:
- auth:
- all_member: 所有會員
- manager: 管理員
- sub_manager: 次管理員
- by_role: 根據身份
- by_sub_role: 根據次身份
- block_list: 封鎖名單
- add_manager: 增加到管理員
- add_sub_manager: 增加到次管理員
- add_to_block_list: 封鎖名單
- add_to_privilege_list: 特許名單
- auth_by: -由%{user_display_name}授權
- user: 使用會員
- info: 用戶資料
- panel: 用戶面板
- role: 用戶身份
-
- dashboard:
- bulletin: 公告
- news_bulletin: 新聞
- page_context: 頁面
- web_link: 鏈接
-
- panel:
-
-
-
-# : >>>>>>> various_bugs
-# Chinese (Taiwan) translations for Ruby on Rails
-# by tsechingho (http://github.com/tsechingho)
- date:
- formats:
- default: "%Y-%m-%d"
- short: "%b%d日"
- long: "%Y年%b%d日"
- day_names: [星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
- abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
- month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
- abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
- order: [ :year, :month, :day ]
-
- time:
- formats:
- default: "%Y年%b%d日 %A %H:%M:%S %Z"
- short: "%b%d日 %H:%M"
- long: "%Y年%b%d日 %H:%M"
- am: "上午"
- pm: "下午"
-
- datetime:
- distance_in_words:
- half_a_minute: "半分鐘"
- less_than_x_seconds:
- one: "不到一秒"
- other: "不到 %{count} 秒"
- x_seconds:
- one: "一秒"
- other: "%{count} 秒"
- less_than_x_minutes:
- one: "不到一分鐘"
- other: "不到 %{count} 分鐘"
- x_minutes:
- one: "一分鐘"
- other: "%{count} 分鐘"
- about_x_hours:
- one: "大約一小時"
- other: "大約 %{count} 小時"
- x_days:
- one: "一天"
- other: "%{count} 天"
- about_x_months:
- one: "大約一個月"
- other: "大約 %{count} 個月"
- x_months:
- one: "一個月"
- other: "%{count} 個月"
- about_x_years:
- one: "大約一年"
- other: "大約 %{count} 年"
- over_x_years:
- one: "一年多"
- other: "%{count} 年多"
- almost_x_years:
- one: "接近一年"
- other: "接近 %{count} 年"
- prompts:
- year: "年"
- month: "月"
- day: "日"
- hour: "時"
- minute: "分"
- second: "秒"
-
- number:
- format:
- separator: "."
- delimiter: ","
- precision: 3
- significant: false
- strip_insignificant_zeros: false
- currency:
- format:
- format: "%u %n"
- unit: "NT$"
- separator: "."
- delimiter: ","
- precision: 2
- significant: false
- strip_insignificant_zeros: false
- percentage:
- format:
- delimiter: ""
- precision:
- format:
- delimiter: ""
- human:
- format:
- delimiter: ""
- precision: 1
- significant: false
- strip_insignificant_zeros: false
- storage_units:
- format: "%n %u"
- units:
- byte:
- one: "Byte"
- other: "Bytes"
- kb: "KB"
- mb: "MB"
- gb: "GB"
- tb: "TB"
- decimal_units:
- format: "%n %u"
- units:
- # 10^-21 zepto, 10^-24 yocto
- atto: "渺" # 10^-18
- femto: "飛" # 10^-15 毫微微
- pico: "漠" # 10^-12 微微
- nano: "奈" # 10^-9 毫微
- micro: "微" # 10^-6
- mili: "毫" # 10^-3 milli
- centi: "厘" # 10^-2
- deci: "分" # 10^-1
- unit: ""
- ten:
- one: "十"
- other: "十" # 10^1
- hundred: "百" # 10^2
- thousand: "千" # 10^3 kilo
- million: "百萬" # 10^6 mega
- billion: "十億" # 10^9 giga
- trillion: "兆" # 10^12 tera
- quadrillion: "千兆" # 10^15 peta
- # 10^18 exa, 10^21 zetta, 10^24 yotta
-
- support:
- array:
- words_connector: ", "
- two_words_connector: " 和 "
- last_word_connector: ", 和 "
- select:
- prompt: "請選擇"
-
- search:
- not_found: "沒有搜尋結果"
- domains: Google Search Domains
- site_search: "全站搜尋"
- sitesearch: Google Site Search
- site_setting_help: 請輸入送交Google搜尋的參數
- result_get: "搜尋有關 ' %{search_word} ' 共搜尋到%{item_num}筆資料"
- too_many: "搜尋有關 ' %{search_word} ' 尋找到超過 %{exceed_num} 筆資料,請嘗試加入更多關鍵字縮小搜尋範圍,以作更精確的搜尋"
-
- result_get: "搜尋標題有關 ' %{search_word} ' 共搜尋到%{item_num}筆資料"
- unit_get: "列出由:%{unit_name}發佈的資料,共有%{item_num}筆"
- activerecord:
- errors:
- template: # ~ 2.3.5 backward compatible
- header:
- one: "有 1 個錯誤發生使得「%{model}」無法被儲存。"
- other: "有 %{count} 個錯誤發生使得「%{model}」無法被儲存。"
- body: "以下欄位發生問題:"
- full_messages:
- format: "%{attribute} %{message}"
- messages:
- inclusion: "沒有包含在列表中"
- exclusion: "是被保留的關鍵字"
- invalid: "是無效的"
- confirmation: "不符合確認值"
- accepted: "必須是可被接受的"
- empty: "不能留空"
- blank: "不能是空白字元"
- too_long: "過長(最長是 %{count} 個字)"
- too_short: "過短(最短是 %{count} 個字)"
- wrong_length: "字數錯誤(必須是 %{count} 個字)"
- not_a_number: "不是數字"
- not_an_integer: "必須是整數"
- greater_than: "必須大於 %{count}"
- greater_than_or_equal_to: "必須大於或等於 %{count}"
- equal_to: "必須等於 %{count}"
- less_than: "必須小於 %{count}"
- less_than_or_equal_to: "必須小於或等於 %{count}"
- odd: "必須是奇數"
- even: "必須是偶數"
- taken: "已經被使用"
- record_invalid: "校驗失敗: %{errors}"
-
- activemodel:
- errors:
- template:
- header:
- one: "有 1 個錯誤發生使得「%{model}」無法被儲存。"
- other: "有 %{count} 個錯誤發生使得「%{model}」無法被儲存。"
- body: "以下欄位發生問題:"
-
- errors:
- format: "%{attribute} %{message}"
- messages:
- inclusion: "沒有包含在列表中"
- exclusion: "是被保留的關鍵字"
- invalid: "是無效的"
- confirmation: "不符合確認值"
- accepted: "必須是可被接受的"
- empty: "不能留空"
- blank: "不能是空白字元"
- too_long: "過長(最長是 %{count} 個字)"
- too_short: "過短(最短是 %{count} 個字)"
- wrong_length: "字數錯誤(必須是 %{count} 個字)"
- not_a_number: "不是數字"
- not_an_integer: "必須是整數"
- greater_than: "必須大於 %{count}"
- greater_than_or_equal_to: "必須大於或等於 %{count}"
- equal_to: "必須等於 %{count}"
- less_than: "必須小於 %{count}"
- less_than_or_equal_to: "必須小於或等於 %{count}"
- odd: "必須是奇數"
- even: "必須是偶數"
- template:
- header:
- one: "有 1 個錯誤發生使得「%{model}」無法被儲存。"
- other: "有 %{count} 個錯誤發生使得「%{model}」無法被儲存。"
- body: "以下欄位發生問題:"
-
-# : <<<<<<< HEAD
- mongoid:
- models:
- news_bulletin: 新聞
- bulletin: 公告
- ad_banner: 廣告輪播
- web_link: 連結管理
- attributes:
- news_bulletin:
- title: 新聞標題
- bulletin:
- title: 公告標題
- ad_banner:
- title: 標題
- web_link:
- title: 名稱
- url: 路徑
-# : =======
- helpers:
- select:
- prompt: "請選擇"
- submit:
- create: "新增%{model}"
- update: "更新%{model}"
- submit: "儲存%{model}"
- modal:
- save_and_close: "儲存並關閉"
- close: "關閉"
- preview: "預覽"
- sys:
- not_previewable: "不支援預覽"
- limit_of_upload_file_size: "上傳檔案大小限制: %{best_size}"
- preview_only_for_img: "預覽僅支援:jpg,png,gif,bmp...等圖片格式"
- can_not_display_due_to_no_context: "因為沒有中文版本,所以無法顯示"
- module_page_lang_not_support: "很抱歉,本頁沒有開放中文版本"
- object_disable:
- change_to_true: "設為停用"
- change_to_false: "重新啓用"
-# : >>>>>>> various_bugs
diff --git a/config/mongoid.yml b/config/mongoid.yml
index 75c5ef80..a809bc06 100644
--- a/config/mongoid.yml
+++ b/config/mongoid.yml
@@ -2,7 +2,7 @@ defaults: &defaults
host: localhost
# slaves:
# - host: slave1.local
- port: 37017
+ port: 27017
# - host: slave2.local
# port: 27019
diff --git a/config/routes.rb b/config/routes.rb
index 9b584ebe..2a9d98fc 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,5 +1,8 @@
Orbit::Application.routes.draw do
- devise_for :users
+ devise_for :users do
+ match "/users_passwd" => "desktop/registrations#update", :as => :users_passwd, :via => :put
+ end
+
mount Resque::Server, :at => "/admin/resque"
# routes for sinatra app
@@ -138,6 +141,11 @@ Orbit::Application.routes.draw do
match 'member_select_add' => "member_selects#member_select_add" ,:as => :member_select_add,:via => "post"
end
+ match 'module_store' => 'module_store#index'
+ match 'module_store/show' => 'module_store#show'
+ match 'template_store' => 'template_store#index'
+ match 'template_store/show' => 'template_store#show'
+
end
# end admin
@@ -156,7 +164,6 @@ Orbit::Application.routes.draw do
namespace :desktop do
match "desktop" => "desktop#desktop"
match '/journal_pages/get_journals_json' => 'journal_pages#get_journals_json'
- match '/co_authors/get_co_authors_json' => 'co_authors#get_co_authors_json'
match '/desktop'=>'desktop#desktop'
match '/app_manager'=>'desktop#app_manager'
match '/sections'=>'desktop#sections'
@@ -174,7 +181,9 @@ Orbit::Application.routes.draw do
match '/temp_func/'=>'desktop#temp_func'
resources :journal_pages
+ resources :journal_lists
resources :co_authors
+ resources :co_author_relations
end
# namespace :desktop_publications do
diff --git a/db/data b/db/data
new file mode 100644
index 00000000..4d7f6e52
--- /dev/null
+++ b/db/data
@@ -0,0 +1,2429 @@
+[
+ {
+ "author": [
+ "Liu, Wei",
+ "Wang, Jun",
+ "Kumar, Sanjiv",
+ "Chang, Shih-Fu"
+ ],
+ "paper_title": "Hashing with Graphs ",
+ "booktitle": "IEEE Transactions on Pattern Analysis and Machine Intelligence",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1,
+ "page_to": 8,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Hashing is becoming increasingly popular for efficient nearest neighbor search in massive databases. However, learning short codes that yield good search performance is still a challenge. Moreover, in many cases real-world data lives on a low-dimensional manifold, which should be taken into account to capture meaningful nearest neighbors. In this paper, we propose a novel graph-based hashing method which automatically discovers the neighborhood structure inherent in the data to learn appropriate compact codes. To make such an approach computationally feasible, we utilize Anchor Graphs to obtain tractable low-rank adjacency matrices. Our formulation allows constant time hashing of a new data point by extrapolating graph Laplacian eigenvectors to eigenfunctions. Finally, we describe a hierarchical threshold learning procedure in which each eigenfunction yields multiple bits, leading to higher search accuracy. Experimental comparison with the other state-of-the-art methods on two large datasets demonstrates the efficacy of the proposed method."
+ },
+ {
+ "author": [
+ "Zhong, Wenliang",
+ "Kwok, James"
+ ],
+ "paper_title": "Efficient Sparse Modeling with Automatic Feature Grouping",
+ "booktitle": "Neural Computation",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 9,
+ "page_to": 16,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:The grouping of features is highly beneficial in learning with high-dimensional data. It reduces the variance in the estimation and improves the stability of feature selection, leading to improved generalization. Moreover, it can also help in data understanding and interpretation. OSCAR is a recent sparse modeling tool that achieves this by using a $\\ell_1$-regularizer and a pairwise $\\ell_\\infty$-regularizer. However, its optimization is computationally expensive. In this paper, we propose an efficient solver based on the accelerated gradient methods. We show that its key projection step can be solved by a simple iterative group merging algorithm. It is highly efficient and reduces the empirical time complexity from $O(d^3 \\sim d^5)$ for the existing solvers to just $O(d)$, where $d$ is the number of features. Experimental results on toy and real-world data sets demonstrate that OSCAR is a competitive sparse modeling approach with the added ability of automatic feature grouping."
+ },
+ {
+ "author": [
+ "Bi, Wei",
+ "Kwok, James"
+ ],
+ "paper_title": "Multi-Label Classification on Tree- and DAG-Structured Hierarchies ",
+ "booktitle": "IEEE Transactions on Neural Networks",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 17,
+ "page_to": 24,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Many real-world applications involve multi-label classification, in which the labels are organized in the form of a tree or directed acyclic graph (DAG). However, current research efforts typically ignore the label dependencies or can only exploit the dependencies in tree-structured hierarchies. In this paper, we present a novel hierarchical multi-label classification algorithm which can be used on both tree- and DAG-structured hierarchies. The key idea is to formulate the search for the optimal consistent multi-label as the finding of the best subgraph in a tree/DAG. Using a simple greedy strategy, the proposed algorithm is computationally efficient, easy to implement, does not suffer from the problem of insufficient/skewed training data in classifier training, and can be readily used on large hierarchies. Theoretical results guarantee the optimality of the obtained solution. Experiments are performed on a large number of functional genomics data sets. The proposed method consistently outperforms the state-of-the-art method on both tree- and DAG-structured hierarchies."
+ },
+ {
+ "author": [
+ "He, Jingrui",
+ "Lawrence, Rick"
+ ],
+ "paper_title": "A Graph-based Framework for Multi-Task Multi-View Learning ",
+ "booktitle": "Machine Learning",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 25,
+ "page_to": 32,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Many real-world problems exhibit dual-heterogeneity. A single learning task might have features in multiple views (i.e., feature heterogeneity); multiple learning tasks might be related with each other through one or more shared views (i.e., task heterogeneity). Existing multi-task learning or multi-view learning algorithms only capture one type of heterogeneity. In this paper, we introduce Multi-Task Multi-View (M^2TV) learning for such complicated learning problems with both feature heterogeneity and task heterogeneity. We propose a graph-based framework (GraM^2) to take full advantage of the dual-heterogeneous nature. Our framework has a natural connection to Reproducing Kernel Hilbert Space (RKHS). Furthermore, we propose an iterative algorithm (IteM^2) for GraM^2 framework, and analyze its optimality, convergence and time complexity. Experimental results on various real data sets demonstrate its effectiveness."
+ },
+ {
+ "author": [
+ "Zhou, Tianyi",
+ "Tao, Dacheng"
+ ],
+ "paper_title": "GoDec: Randomized Low-rank & Sparse Matrix Decomposition in Noisy Case ",
+ "booktitle": "Pattern Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 33,
+ "page_to": 40,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Low-rank and sparse structures have been profoundly studied in matrix completion and compressed sensing. In this paper, we develop ``Go Decomposition'' (GoDec) to efficiently and robustly estimate the low-rank part $L$ and the sparse part $S$ of a matrix $X=L+S+G$ with noise $G$. GoDec alternatively assigns the low-rank approximation of $X-S$ to $L$ and the sparse approximation of $X-L$ to $S$. The algorithm can be significantly accelerated by bilateral random projections (BRP). We also propose GoDec for matrix completion as an important variant. We prove that the objective value $\\|X-L-S\\|_F^2$ converges to a local minimum, while $L$ and $S$ linearly converge to local optimums. Theoretically, we analyze the influence of $L$, $S$ and $G$ to the asymptotic/convergence speeds in order to discover the robustness of GoDec. Empirical studies suggest the efficiency, robustness and effectiveness of GoDec comparing with representative matrix decomposition and completion tools, e.g., Robust PCA and OptSpace."
+ },
+ {
+ "author": [
+ "Yu, Jia Yuan",
+ "Mannor, Shie"
+ ],
+ "paper_title": "Unimodal Bandits",
+ "booktitle": "Journal of Machine Learning Research",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 41,
+ "page_to": 48,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We consider multiarmed bandit problems where the expected reward is unimodal over partially ordered arms. In particular, the arms may belong to a continuous interval or correspond to vertices in a graph, where the graph structure represents similarity in rewards. The unimodality assumption has an important advantage: we can determine if a given arm is optimal by sampling the possible directions around it. This property allows us to quickly and efficiently find the optimal arm and detect abrupt changes in the reward distributions. For the case of bandits on graphs, we incur a regret proportional to the maximal degree and the diameter of the graph, instead of the total number of vertices."
+ },
+ {
+ "author": [
+ "Dinuzzo, Francesco",
+ "Ong, Cheng Soon",
+ "Gehler, Peter",
+ "Pillonetto, Gianluigi"
+ ],
+ "paper_title": "Learning Output Kernels with Block Coordinate Descent ",
+ "booktitle": "Pattern Recognition Letters",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 49,
+ "page_to": 56,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We propose a method to learn simultaneously a vector-valued function and a kernel between its components. The obtained kernel can be used both to improve learning performances and to reveal structures in the output space which may be important in their own right. Our method is based on the solution of a suitable regularization problem over a reproducing kernel Hilbert space (RKHS) of vector-valued functions. Although the regularized risk functional is non-convex, we show that it is invex, implying that all local minimizers are global minimizers. We derive a block-wise coordinate descent method that efficiently exploits the structure of the objective functional. Then, we empirically demonstrate that the proposed method can improve classification accuracy. Finally, we provide a visual interpretation of the learned kernel matrix for some well known datasets."
+ },
+ {
+ "author": [
+ "Minh, Ha Quang",
+ "Sindhwani, Vikas"
+ ],
+ "paper_title": "Vector-valued Manifold Regularization ",
+ "booktitle": "The Journal of Artificial Societies and Social Simulation",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 57,
+ "page_to": 64,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We consider the general problem of learning an unknown functional dependency, f : X->Y, between a structured input space X and a structured output space Y, from labeled and unlabeled examples. We formulate this problem in terms of data-dependent regularization in Vector-valued Reproducing Kernel Hilbert Spaces (Micchelli & Pontil, 2005) which elegantly extend familiar scalar-valued kernel methods to the general setting where Y has a Hilbert space structure. Our methods provide a natural extension of Manifold Regularization (Belkin et al., 2006) algorithms to also exploit output inter-dependencies while enforcing smoothness with respect to input data geometry. We propose a class of matrix-valued kernels which allow efficient implementations of our algorithms via the use of numerical solvers for Sylvester matrix equations. On multilabel image annotation and text classification problems, we find favorable empirical comparisons against several competing alternatives."
+ },
+ {
+ "author": [
+ "Sugiyama, Masashi",
+ "Yamada, Makoto",
+ "Kimura, Manabu",
+ "Hachiya, Hirotaka"
+ ],
+ "paper_title": "On Information-Maximization Clustering: Tuning Parameter Selection and Analytic Solution ",
+ "booktitle": "International Journal of Pattern Recognition and Artificial Intelligence",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 65,
+ "page_to": 72,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Information-maximization clustering learns a probabilistic classifier in an unsupervised manner so that mutual information between feature vectors and cluster assignments is maximized. A notable advantage of this approach is that it only involves continuous optimization of model parameters, which is substantially easier to solve than discrete optimization of cluster assignments. However, existing methods still involve non-convex optimization problems, and therefore finding a good local optimal solution is not straightforward in practice. In this paper, we propose an alternative information-maximization clustering method based on a squared-loss variant of mutual information. This novel approach gives a clustering solution analytically in a computationally efficient way via kernel eigenvalue decomposition. Furthermore, we provide a practical model selection procedure that allows us to objectively optimize tuning parameters included in the kernel function. Through experiments, we demonstrate the usefulness of the proposed approach."
+ },
+ {
+ "author": [
+ "Nock, Richard",
+ "Magdalou, Brice",
+ "Briys, Eric",
+ "Nielsen, Frank"
+ ],
+ "paper_title": "On tracking portfolios with certainty equivalents on a generalization of Markowitz model: the Fool, the Wise and the Adaptive",
+ "booktitle": "Information Research",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 73,
+ "page_to": 80,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Portfolio allocation theory has been heavily influenced by a major contribution of Harry Markowitz in the early fifties: the mean-variance approach. While there has been a continuous line of works in on-line learning portfolios over the past decades, very few works have really tried to cope with Markowitz model. A major drawback of the mean-variance approach is that it is approximation-free only when stock returns obey a Gaussian distribution, an assumption known not to hold in real data. In this paper, we first alleviate this assumption, and rigorously lift the mean-variance model to a more general mean-divergence model in which stock returns are allowed to obey any exponential family of distributions. We then devise a general on-line learning algorithm in this setting. We prove for this algorithm the first lower bounds on the most relevant quantity to be optimized in the framework of Markowitz model: the certainty equivalents. Experiments on four real-world stock markets display its ability to track portfolios whose cumulated returns exceed those of the best stock by orders of magnitude."
+ },
+ {
+ "author": [
+ "Babenko, Boris",
+ "Verma, Nakul",
+ "Dollar, Piotr",
+ "Belongie, Serge"
+ ],
+ "paper_title": "Multiple Instance Learning with Manifold Bags",
+ "booktitle": "Advanced Robotics",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 81,
+ "page_to": 88,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In many machine learning applications, labeling every instance of data is burdensome. Multiple Instance Learning (MIL), in which training data is provided in the form of labeled bags rather than labeled instances, is one approach for a more relaxed form of supervised learning. Though much progress has been made in analyzing MIL problems, existing work considers bags that have a finite number of instances. In this paper we argue that in many applications of MIL (e.g. image, audio, e.t.c.) the bags are better modeled as low dimensional manifolds in high dimensional feature space. We show that the geometric structure of such manifold bags affects PAC-learnability. We discuss how a learning algorithm that is designed for finite sized bags can be adapted to learn from manifold bags. Furthermore, we propose a simple heuristic that reduces the memory requirements of such algorithms. Our experiments on real-world data validate our analysis and show that our approach works well."
+ },
+ {
+ "author": [
+ "Jiang, Yi",
+ "Ren, Jiangtao"
+ ],
+ "paper_title": "Eigenvalue Sensitive Feature Selection",
+ "booktitle": "Information Systems Frontiers",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 89,
+ "page_to": 96,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In recent years, some spectral feature selection methods are proposed to choose those features with high power of preserving sample similarity. However, when there exist lots of irrelevant or noisy features in data, the similarity matrix constructed from all the un-weighted features may be not reliable, which then misleads existing spectral feature selection methods to select 'wrong' features. To solve this problem, we propose that feature importance should be evaluated according to their impacts on similarity matrix, which means features with high impacts on similarity matrix should be chosen as important ones. Since graph Laplacian\\cite{luxbury2007} is defined on the similarity matrix, then the impact of each feature on similarity matrix can be reflected on the change of graph Laplacian, especially on its eigen-system. Based on this point of view, we propose an Eigenvalue Sensitive Criteria (EVSC) for feature selection, which aims at seeking those features with high impact on graph Laplacian's eigenvalues. Empirical analysis demonstrates our proposed method outperforms some traditional spectral feature selection methods."
+ },
+ {
+ "author": [
+ "Su, Jiang",
+ "Shirab, Jelber Sayyad",
+ "Matwin, Stan"
+ ],
+ "paper_title": "Large Scale Text Classification using Semi-supervised Multinomial Naive Bayes ",
+ "booktitle": "Pattern Analysis and Applications",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 97,
+ "page_to": 104,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Numerous semi-supervised learning methods have been proposed to augment Multinomial Naive Bayes (MNB) using unlabeled documents, but their use in practice is often limited due to implementation difficulty, inconsistent prediction performance, or high computational cost. In this paper, we propose a new, very simple semi-supervised extension of MNB, called Semi-supervised Frequency Estimate (SFE). Our experiments show that it consistently improves MNB with additional data (labeled or unlabeled) in terms of AUC and accuracy, which is not the case when combining MNB with Expectation Maximization (EM). We attribute this to the fact that SFE consistently produces better conditional log likelihood values than both EM+MNB and MNB in labeled training data."
+ },
+ {
+ "author": [
+ "Cho, KyungHyun",
+ "Raiko, Tapani",
+ "Ilin, Alexander"
+ ],
+ "paper_title": "Enhanced Gradient and Adaptive Learning Rate for Training Restricted Boltzmann Machines",
+ "booktitle": "International Journal on Document Analysis and Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 105,
+ "page_to": 112,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Boltzmann machines are often used as building blocks in greedy learning of deep networks. However, training even a simplified model, known as restricted Boltzmann machine (RBM), can be extremely laborious: Traditional learning algorithms often converge only with the right choice of the learning rate scheduling and the scale of the initial weights. They are also sensitive to specific data representation: An equivalent RBM can be obtained by flipping some bits and changing the weights and biases accordingly, but traditional learning rules are not invariant to such transformations. Without careful tuning of these training settings, traditional algorithms can easily get stuck at plateaus or even diverge. In this work, we present an enhanced gradient which is derived such that it is invariant to bit-flipping transformations. We also propose a way to automatically adjust the learning rate by maximizing a local likelihood estimate. Our experiments confirm that the proposed improvements yield more stable training of RBMs."
+ },
+ {
+ "author": [
+ "Tarlow, Daniel",
+ "Batra, Dhruv",
+ "Kohli, Pushmeet",
+ "Kolmogorov, Vladimir"
+ ],
+ "paper_title": "Dynamic Tree Block Coordinate Ascent",
+ "booktitle": "Neural Computing and Applications",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 113,
+ "page_to": 120,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:This paper proposes a novel Linear Programming (LP) based algorithm, called Dynamic Tree-Block Coordinate Ascent (DTBCA), for performing maximum a posteriori (MAP) inference in probabilistic graphical models. Unlike traditional message passing algorithms, which operate uniformly on the whole factor graph, our method dynamically chooses regions of the factor graph on which to focus message-passing efforts. We propose two criteria for selecting regions, including an efficiently computable upper-bound on the increase in the objective possible by passing messages in any particular region. This bound is derived from the theory of primal-dual methods from combinatorial optimization, and the forest that maximizes the bounds can be chosen efficiently using a maximum-spanning-tree-like algorithm. Experimental results show that our dynamic schedules significantly speed up state-of-the- art LP-based message-passing algorithms on a wide variety of real-world problems."
+ },
+ {
+ "author": [
+ "Mahoney, Michael",
+ "Orecchia, Lorenzo"
+ ],
+ "paper_title": "Implementing regularization implicitly via approximate eigenvector computation",
+ "booktitle": "European Journal of Information Systems",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 121,
+ "page_to": 128,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Regularization is a powerful technique for extracting useful information from noisy data. Typically, it is implemented by adding some sort of norm constraint to an objective function and then exactly optimizing the modified objective function. This procedure often leads to optimization problems that are computationally more expensive than the original problem, a fact that is clearly problematic if one is interested in large-scale applications. On the other hand, a large body of empirical work has demonstrated that heuristics, and in some cases approximation algorithms, developed to speed up computations sometimes have the side-effect of performing regularization implicitly. Thus, we consider the question: What is the regularized optimization objective that an approximation algorithm is exactly optimizing? We address this question in the context of computing approximations to the smallest nontrivial eigenvector of a graph Laplacian; and we consider three random-walk-based procedures: one based on the heat kernel of the graph, one based on computing the the PageRank vector associated with the graph, and one based on a truncated lazy random walk. In each case, we provide a precise characterization of the manner in which the approximation method can be viewed as implicitly computing the exact solution to a regularized problem. Interestingly, the regularization is not on the usual vector form of the optimization problem, but instead it is on a related semidefinite program."
+ },
+ {
+ "author": [
+ "Socher, Richard",
+ "Lin, Cliff Chiung-Yu",
+ "Ng, Andrew",
+ "Manning, Chris"
+ ],
+ "paper_title": "Parsing Natural Scenes and Natural Language with Recursive Neural Networks",
+ "booktitle": "Internet Mathematics",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 129,
+ "page_to": 136,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Recursive structure is commonly found in the inputs of different modalities such as natural scene images or natural language sentences. Discovering this recursive structure helps us to not only identify the units that an image or sentence contains but also how they interact to form a whole. We introduce a max-margin structure prediction architecture based on recursive neural networks that can successfully recover such structure both in complex scene images as well as sentences. The same algorithm can be used both to provide a competitive syntactic parser for natural language sentences from the Penn Treebank and to outperform alternative approaches for semantic scene segmentation, annotation and classification. For segmentation and annotation our algorithm obtains a new level of state-of-the-art performance on the Stanford background dataset (78.1%). The features from the image parse tree outperform Gist descriptors for scene classification by 4%."
+ },
+ {
+ "author": [
+ "Thomas, Philip",
+ "Barto, Andrew"
+ ],
+ "paper_title": "Conjugate Markov Decision Processes ",
+ "booktitle": "Transactions on Rough Sets",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 137,
+ "page_to": 144,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Many open problems involve the search for a mapping that is used by an algorithm solving an MDP. Useful mappings are often from the state set to some other set. Examples include representation discovery (a mapping to a feature space) and skill discovery (a mapping to skill termination probabilities). Different mappings result in algorithms achieving varying expected returns. In this paper we present a novel approach to the search for any mapping used by any algorithm attempting to solve an MDP, for that which results in maximum expected return."
+ },
+ {
+ "author": [
+ "Lu, Tyler",
+ "Boutilier, Craig"
+ ],
+ "paper_title": "Learning Mallows Models with Pairwise Preferences",
+ "booktitle": "IMPACT Impact of Computing in Science and Engineering",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 145,
+ "page_to": 152,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Learning preference distributions is a key problem in many areas (e.g., recommender systems, IR, social choice). However, existing methods require restrictive data models for evidence about user preferences. We relax these restrictions by considering as data arbitrary pairwise comparisons---the fundamental building blocks of ordinal rankings. We develop the first algorithms for learning Mallows models (and mixtures) with pairwise comparisons. At the heart is a new algorithm, the generalized repeated insertion model (GRIM), for sampling from arbitrary ranking distributions. We develop approximate samplers that are exact for many important special cases---and have provable bounds with pairwise evidence---and derive algorithms for evaluating log-likelihood, learning Mallows mixtures, and non-parametric estimation. Experiments on large, real-world datasets show the effectiveness of our approach."
+ },
+ {
+ "author": [
+ "Scott, Clayton"
+ ],
+ "paper_title": "Surrogate losses and regret bounds for cost-sensitive classification with example-dependent costs ",
+ "booktitle": "Cognition, Technology & Work",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 153,
+ "page_to": 160,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We study surrogate losses in the context of cost-sensitive classification with example-dependent costs, a problem also known as regression level set estimation. We give sufficient conditions on the surrogate loss for the existence of a surrogate regret bound. Such bounds imply that as the surrogate risk tends to its optimal value, so too does the expected misclassification cost. Our sufficient conditions encompass example-dependent versions of the hinge, exponential, and other common losses. These results provide theoretical justification for some previously proposed surrogate-based algorithms, and suggests others that have not yet been developed."
+ },
+ {
+ "author": [
+ "Jawanpuria, Pratik",
+ "Jagarlapudi, Saketha Nath",
+ "Ramakrishnan, Ganesh"
+ ],
+ "paper_title": "Efficient Rule Ensemble Learning using Hierarchical Kernels ",
+ "booktitle": "International Journal of Information Technology and Decision Making",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 161,
+ "page_to": 168,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:This paper addresses the problem of Rule Ensemble Learning (REL), where the goal is simultaneous discovery of a small set of simple rules and their optimal weights that lead to good generalization. Rules are assumed to be conjunctions of basic propositions concerning the values taken by the input features. From the perspectives of interpretability as well as generalization, it is highly desirable to construct rule ensembles with low training error, having rules that are i) simple, {\\em i.e.}, involve few conjunctions and ii) few in number. We propose to explore the (exponentially) large feature space of all possible conjunctions optimally and efficiently by employing the recently introduced Hierarchical Kernel Learning (HKL) framework. The regularizer employed in the HKL formulation can be interpreted as a potential for discouraging selection of rules involving large number of conjunctions -- justifying its suitability for constructing rule ensembles. Simulation results show that the proposed approach improves over state-of-the-art REL algorithms in terms of generalization and indeed learns simple rules. Although this is encouraging, it can be shown that HKL selects a conjunction only if all its subsets are selected, and this is highly undesirable. We propose a novel convex formulation which alleviates this problem and generalizes the HKL framework. The main technical contribution of this paper is an efficient mirror-descent based active set algorithm for solving the new formulation. Empirical evaluations on REL problems illustrate the utility of generalized HKL."
+ },
+ {
+ "author": [
+ "Martins, Andre",
+ "Figueiredo, Mario",
+ "Aguiar, Pedro",
+ "Smith, Noah",
+ "Xing, Eric"
+ ],
+ "paper_title": "An Augmented Lagrangian Approach to Constrained MAP Inference ",
+ "booktitle": "International Journal of Knowledge and Learning",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 169,
+ "page_to": 176,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We propose a new fast algorithm for approximate MAP inference on factor graphs, which combines augmented Lagrangian optimization with the dual decomposition method. Each slave subproblem is given a quadratic penalty, which pushes toward faster consensus than in previous subgradient approaches. Our algorithm is provably convergent, parallelizable, and suitable for fine decompositions of the graph. We show how it can efficiently handle problems with (possibly global) structural constraints via simple sort operations. Experiments on synthetic and real-world data show that our approach compares favorably with the state-of-the-art."
+ },
+ {
+ "author": [
+ "Mannor, Shie",
+ "Tsitsiklis, John"
+ ],
+ "paper_title": "Mean-Variance Optimization in Markov Decision Processes ",
+ "booktitle": "International Journal of Web and Grid Services",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 177,
+ "page_to": 184,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We consider finite horizon Markov decision processes under performance measures that involve both the mean and the variance of the cumulative reward. We show that either randomized or history-based policies can improve performance. We prove that the complexity of computing a policy that maximizes the mean reward under a variance constraint is NP-hard for some cases, and strongly NP-hard for others. We finally offer pseudo-polynomial exact and approximation algorithms."
+ },
+ {
+ "author": [
+ "Li, Lei",
+ "Prakash, B. Aditya"
+ ],
+ "paper_title": "Time Series Clustering: Complex is Simpler!",
+ "booktitle": "Robotica",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 185,
+ "page_to": 192,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Given a motion capture sequence, how to identify the category of the motion? Classifying human motions is a critical task in motion editing and synthesizing, for which manual labeling is clearly inefficient for large databases. Here we study the general problem of time series clustering. We propose a novel method of clustering time series that can (a) learn joint temporal dynamics in the data; (b) handle time lags; and (c) produce interpretable features. We achieve this by developing complex-valued linear dynamical systems (CLDS), which include real-valued Kalman filters as a special case; our advantage is that the transition matrix is simpler (just diagonal), and the transmission one easier to interpret. We then present Complex-Fit, a novel EM algorithm to learn the parameters for the general model and its special case for clustering. Our approach produces significant improvement in clustering quality, 1.5 to 5 times better than well-known competitors on real motion capture sequences."
+ },
+ {
+ "author": [
+ "Gould, Stephen"
+ ],
+ "paper_title": "Max-margin Learning for Lower Linear Envelope Potentials in Binary Markov Random Fields",
+ "booktitle": "Machine Intelligence and Pattern Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 193,
+ "page_to": 200,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:The standard approach to max-margin parameter learning for Markov random fields (MRFs) involves incrementally adding the most violated constraints during each iteration of the algorithm. This requires exact MAP inference, which is intractable for many classes of MRF. In this paper, we propose an exact MAP inference algorithm for binary MRFs containing a class of higher-order models, known as lower linear envelope potentials. Our algorithm is polynomial in the number of variables and number of linear envelope functions. With tractable inference in hand, we show how the parameters and corresponding feature vectors can be represented in a max-margin framework for efficiently learning lower linear envelope potentials."
+ },
+ {
+ "author": [
+ "Clark, Alexander"
+ ],
+ "paper_title": "Inference of Inversion Transduction Grammars ",
+ "booktitle": "IEEE Transactions on Aerospace and Navigational Electronics",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 201,
+ "page_to": 208,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We present the first polynomial algorithm for learning a class of inversion transduction grammars (ITGs) that implement context free transducers -- functions from strings to strings. The class of transductions that we can learn properly includes all subsequential transductions. These algorithms are based on a generalisation of distributional learning; we prove correctness of our algorithm under an identification in the limit model."
+ },
+ {
+ "author": [
+ "Hu, En-Liang",
+ "Wang, Bo",
+ "Chen, SongCan"
+ ],
+ "paper_title": "BCDNPKL: Scalable Non-Parametric Kernel Learning Using Block Coordinate Descent",
+ "booktitle": "Transactions on Machine Learning and Data Mining",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 209,
+ "page_to": 216,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Most existing approaches for non-parametric kernel learning (NPKL) suffer from expensive computation, which would limit their applications to large-scale problems. To address the scalability problem of NPKL, we propose a novel algorithm called BCDNPKL, which is very efficient and scalable. Superior to most existing approaches, BCDNPKL keeps away from semidefinite programming (SDP) and eigen-decomposition, which benefits from two findings: 1) The original SDP framework of NPKL can be reduced into a far smaller-sized counterpart which is corresponding to the sub-kernel (referred to as boundary kernel) learning; 2) The sub-kernel learning can be efficiently solved by using the proposed block coordinate descent (BCD) technique. We provide a formal proof of global convergence for the proposed BCDNPKL algorithm. The extensive experiments verify the scalability and effectiveness of BCDNPKL, compared with the state-of-the-art algorithms."
+ },
+ {
+ "author": [
+ "der Maaten, Laurens Van"
+ ],
+ "paper_title": "Learning Discriminative Fisher Kernels",
+ "booktitle": "Neural Information Processing Systems",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 217,
+ "page_to": 224,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Fisher kernels provide a commonly used vectorial representation of structured objects. The paper presents a technique that exploits label information to improve the object representation of Fisher kernels by employing ideas from metric learning. In particular, the new technique trains a generative model in such a way that the distance between the log-likelihood gradients induced by two objects with the same label is as small as possible, and the distance between the gradients induced by two objects with different labels is as large as possible. We illustrate the strong performance of classifiers trained on the resulting object representations on problems in handwriting recognition, speech recognition, facial expression analysis, and bio-informatics."
+ },
+ {
+ "author": [
+ "Kpotufe, Samory",
+ "von Luxburg, Ulrike"
+ ],
+ "paper_title": "Pruning nearest neighbor cluster trees ",
+ "booktitle": "International Conference on Machine Learning",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 225,
+ "page_to": 232,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Nearest neighbor ($k$-NN) graphs are widely used in machine learning and data mining applications, and our aim is to better understand what they reveal about the cluster structure of the unknown underlying distribution of points. Moreover, is it possible to identify spurious structures that might arise due to sampling variability? Our first contribution is a statistical analysis that reveals how certain subgraphs of a $k$-NN graph form a consistent estimator of the cluster tree of the underlying distribution of points. Our second and perhaps most important contribution is the following finite sample guarantee. We carefully work out the tradeoff between aggressive and conservative pruning and are able to guarantee the removal of all spurious cluster structures while at the same time guaranteeing the recovery of salient clusters. This is the first such finite sample result in the context of clustering."
+ },
+ {
+ "author": [
+ "Zhao, Peilin",
+ "Hoi, Steven",
+ "Jin, Rong",
+ "Yang, Tianbao"
+ ],
+ "paper_title": "Online AUC Maximization ",
+ "booktitle": "Uncertainty in Artificial Intelligence",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 233,
+ "page_to": 240,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Most studies of online learning measure the performance of a learner by classification accuracy, which is inappropriate for applications where the data are unevenly distributed among different classes. We address this limitation by developing online learning algorithm for maximizing Area Under the ROC curve (AUC), a metric that is widely used for measuring the classification performance for imbalanced data distributions. The key challenge of online AUC maximization is that it needs to optimize the pairwise loss between two instances from different classes. This is in contrast to the classical setup of online learning where the overall loss is a sum of losses over individual training examples. We address this challenge by exploiting the reservoir sampling technique, and present two algorithms for online AUC maximization with theoretic performance guarantee. Extensive experimental studies confirm the effectiveness and the efficiency of the proposed algorithms for maximizing AUC."
+ },
+ {
+ "author": [
+ "Yue, Yisong",
+ "Joachims, Thorsten"
+ ],
+ "paper_title": "Beat the Mean Bandit ",
+ "booktitle": "International Conference on Intelligent RObots and IROS",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 241,
+ "page_to": 248,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:The Dueling Bandits Problem is an online learning framework in which actions are restricted to noisy comparisons between pairs of strategies (also known as bandits). It models settings where absolute rewards are difficult to elicit but pairwise preferences are readily available. In this paper, we extend the Dueling Bandits Problem to a relaxed setting where preference magnitudes can violate transitivity. We present the first algorithm for this more general Dueling Bandits Problem and provide theoretical guarantees in both the online and the PAC settings. Furthermore, we show that the new algorithm has stronger guarantees than existing results even in the original Dueling Bandits Problem, which we validate empirically."
+ },
+ {
+ "author": [
+ "Orabona, Francesco",
+ "Jie, Luo"
+ ],
+ "paper_title": "Ultra-Fast Optimization Algorithm for Sparse Multi Kernel Learning",
+ "booktitle": "International Conference on Pattern Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 249,
+ "page_to": 256,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Many state-of-the-art approaches for Multi Kernel Learning (MKL) struggle at finding a compromise between performance, sparsity of the solution and speed of the optimization process. In this paper we look at the MKL problem at the same time from a learning and optimization point of view. So, instead of designing a regularizer and then struggling to find an efficient method to minimize it, we design the regularizer while keeping the optimization algorithm in mind. Hence, we introduce a novel MKL formulation, which mixes elements of p-norm and elastic-net kind of regularization. We also propose a fast stochastic gradient descent method that solves the novel MKL formulation. We show theoretically and empirically that our method has 1) state-of-the-art performance on many classification tasks; 2) exact sparse solutions with a tunable level of sparsity; 3) a convergence rate bound that depends only logarithmically on the number of kernels used, and is independent of the sparsity required; 4) independence on the particular convex loss function used."
+ },
+ {
+ "author": [
+ "Potetz, Brian"
+ ],
+ "paper_title": "Estimating the Bayes Point Using Linear Knapsack Problems ",
+ "booktitle": "International Symposium on Neural Networks",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 257,
+ "page_to": 264,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:A Bayes Point machine is a binary classifier that approximates the Bayes-optimal classifier by estimating the mean of the posterior distribution of classifier parameters. Past Bayes Point machines have overcome the intractability of this goal by using message passing techniques that approximate the posterior of the classifier parameters as a Gaussian distribution. In this paper, we investigate alternative message passing approaches that do not rely on Gaussian approximation. To make this possible, we introduce a new computational shortcut based on linear multiple-choice knapsack problems that reduces the complexity of computing Bayes Point belief propagation messages from exponential to linear in the number of data features. Empirical tests of our approach show significant improvement in linear classification over both soft-margin SVMs and Expectation Propagation Bayes Point machines for several real-world UCI datasets."
+ },
+ {
+ "author": [
+ "Le, Quoc",
+ "Ngiam, Jiquan",
+ "Coates, Adam",
+ "Lahiri, Ahbik",
+ "Prochnow, Bobby",
+ "Ng, Andrew"
+ ],
+ "paper_title": "On optimization methods for deep learning ",
+ "booktitle": "Computational Learning Theory",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 265,
+ "page_to": 272,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:The predominant methodology in training deep learning advocates the use of stochastic gradient descent methods (SGDs). Despite its ease of implementation, SGDs are difficult to tune and parallelize. These problems make it challenging to develop, debug and scale up deep learning algorithms with SGDs. In this paper, we show that more sophisticated off-the-shelf optimization methods such as Limited memory BFGS (L-BFGS) and Conjugate gradient (CG) with linesearch can significantly simplify and speed up the process of pretraining deep algorithms. In our experiments, the difference between L-BFGS/CG and SGDs are more pronounced if we consider algorithmic extensions (e.g., sparsity regularization) and hardware extensions (e.g., GPUs or computer clusters). Our experiments with distributed optimization support the use of L-BFGS with locally connected networks and convolutional neural networks. Using L-BFGS, our convolutional network model achieves 0.69\\% on the standard MNIST dataset. This is a state-of-the-art result on MNIST among algorithms that do not use distortions or pretraining."
+ },
+ {
+ "author": [
+ "Crammer, Koby",
+ "Gentile, Claudio"
+ ],
+ "paper_title": "Multiclass Classification with Bandit Feedback using Adaptive Regularization ",
+ "booktitle": "The European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 273,
+ "page_to": 280,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We present a new multiclass algorithm in the bandit framework, where after making a prediction, the learning algorithm receives only partial feedback, i.e., a single bit of right-or-wrong, rather then the true label. Our algorithm is based on the second-order Perceptron, and uses upper-confidence bounds to trade off exploration and exploitation. We analyze this algorithm in a partial adversarial setting, where instances are chosen adversarially, while the labels are chosen according to a linear probabilistic model, which is also chosen adversarially. From the theoretical viewpoint, we show a regret of O(\\sqrt{T}\\log(T)), which improves over the current best bounds of O(T^{2/3}) in the fully adversarial setting. We evaluate our algorithm on nine real-world text classification problems, obtaining state-of-the-art results, even compared with non-bandit online algorithms, especially when label noise is introduced."
+ },
+ {
+ "author": [
+ "Helmbold, Dave",
+ "Long, Phil"
+ ],
+ "paper_title": "On the Necessity of Irrelevant Variables ",
+ "booktitle": "International Conference on Document Analysis and Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 281,
+ "page_to": 288,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:This work explores the effects of relevant and irrelevant boolean variables on the accuracy of classifiers. The analysis uses the assumption that the variables are conditionally independent given the class, and focuses on a natural family of learning algorithms for such sources when the relevant variables have a small advantage over random guessing. The main result is that algorithms relying predominately on irrelevant variables have error probabilities that quickly go to 0 in situations where algorithms that limit the use of irrelevant variables have errors bounded below by a positive constant. We also show that accurate learning is possible even when there are so few examples that one cannot determine with high confidence whether or not any individual variable is relevant."
+ },
+ {
+ "author": [
+ "Barthelm\\'{e}, Simon",
+ "Chopin, Nicolas"
+ ],
+ "paper_title": "ABC-EP: Expectation Propagation for Likelihood-free Bayesian Computation ",
+ "booktitle": "Int. Conference on Artificial Neural Networks",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 289,
+ "page_to": 296,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Many statistical models of interest to the natural and social sciences have no tractable likelihood function. Until recently, Bayesian inference for such models was thought infeasible. Pritchard et al. (1999) introduced an algorithm known as ABC, for Approximate Bayesian Computation, that enables Bayesian computation in such models. Despite steady progress since this first breakthrough, such as the adaptation of MCMC and Sequential Monte Carlo techniques to likelihood-free inference, state-of-the art methods remain notoriously hard to use and require enormous computation times. Among other issues, one faces the difficult task of finding appropriate summary statistics for the model, and tuning the algorithm can be time-consuming when little prior information is available. We show that Expectation Propagation, a widely successful approximate inference technique, can be adapted to the likelihood-free context. The resulting algorithm does not require summary statistics, is an order of magnitude faster than existing techniques, and remains usable when prior information is vague."
+ },
+ {
+ "author": [
+ "Germain, Pascal",
+ "Lacoste, Alexandre",
+ "Laviolette, Francois",
+ "Marchand, Mario",
+ "Shanian, Sara"
+ ],
+ "paper_title": "A PAC-Bayes Sample-compression Approach to Kernel Methods ",
+ "booktitle": "Independent Component Analysis",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 297,
+ "page_to": 304,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We propose a PAC-Bayes sample compression approach to kernel methods that can accommodate any bounded similarity function and show that the support vector machine (SVM) classifier is a particular case of a more general class of data-dependent classifiers known as majority votes of sample-compressed classifiers. We provide novel risk bounds for these majority votes and learning algorithms that minimize these bounds."
+ },
+ {
+ "author": [
+ "Tamar, Aviv",
+ "Castro, Dotan Di",
+ "Meir, Ron"
+ ],
+ "paper_title": "Integrating Partial Model Knowledge in Model Free RL Algorithms",
+ "booktitle": "DAGM Symposium Symposium for Pattern Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 305,
+ "page_to": 312,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In reinforcement learning an agent uses online feedback from the environment and prior knowledge in order to adaptively select an effective policy. Model free approaches address this task by directly mapping external and internal states to actions, while model based methods attempt to construct a model of the environment, followed by a selection of optimal actions based on that model. Given the complementary advantages of both approaches, we suggest a novel algorithm which combines them into a single algorithm, which switches between a model based and a model free mode, depending on the current environmental state and on the status of the agent's knowledge. We prove that such an approach leads to improved performance whenever environmental knowledge is available, without compromising performance when such knowledge is absent. Numerical simulations demonstrate the effectiveness of the approach and suggest its efficacy in boosting policy gradient learning."
+ },
+ {
+ "author": [
+ "\\'{A}lvaro Barbero",
+ "Sra, Suvrit"
+ ],
+ "paper_title": "Fast Newton-type Methods for Total Variation Regularization ",
+ "booktitle": "Document Analysis Systems",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 313,
+ "page_to": 320,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Numerous applications in statistics, signal processing, and machine learning regularize using Total Variation (TV) penalties. We study anisotropic (l1-based) TV and also a related l2-norm variant. We consider for both variants associated (1D) proximity operators, which lead to challenging optimization problems. We solve these problems by developing Newton-type methods that outperform the state-of-the-art algorithms. More importantly, our 1D-TV algorithms serve as building blocks for solving the harder task of computing 2- (and higher)-dimensional TV proximity. We illustrate the computational benefits of our methods by applying them to several applications: (i) image denoising; (ii) image deconvolution (by plugging in our TV solvers into publicly available software); and (iii) four variants of fused-lasso. The results show large speedups--and to support our claims, we provide software accompanying this paper."
+ },
+ {
+ "author": [
+ "Bradley, Joseph",
+ "Kyrola, Aapo",
+ "Bickson, Daniel",
+ "Guestrin, Carlos"
+ ],
+ "paper_title": "Parallel Coordinate Descent for L1-Regularized Loss Minimization",
+ "booktitle": "The European Symposium on Artificial Neural Networks",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 321,
+ "page_to": 328,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We propose Shotgun, a parallel coordinate descent algorithm for minimizing L1-regularized losses. Though coordinate descent seems inherently sequential, we prove convergence bounds for Shotgun which predict linear speedups, up to a problem-dependent limit. We present a comprehensive empirical study of Shotgun for Lasso and sparse logistic regression. Our theoretical predictions on the potential for parallelism closely match behavior on real data. Shotgun outperforms other published solvers on a range of large problems, proving to be one of the most scalable algorithms for L1."
+ },
+ {
+ "author": [
+ "Shalev-Shwartz, Shai",
+ "Gonen, Alon",
+ "Shamir, Ohad"
+ ],
+ "paper_title": "Large-Scale Convex Minimization with a Low-Rank Constraint",
+ "booktitle": "Multiple Classifier Systems",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 329,
+ "page_to": 336,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We address the problem of minimizing a convex function over the space of large matrices with low rank. While this optimization problem is hard in general, we propose an efficient greedy algorithm and derive its formal approximation guarantees. Each iteration of the algorithm involves (approximately) finding the left and right singular vectors corresponding to the largest singular value of a certain matrix, which can be calculated in linear time. This leads to an algorithm which can scale to large matrices arising in several applications such as matrix completion for collaborative filtering and robust low rank matrix approximation."
+ },
+ {
+ "author": [
+ "Hannah, Lauren",
+ "Dunson, David"
+ ],
+ "paper_title": "Approximate Dynamic Programming for Storage Problems ",
+ "booktitle": "International Joint Conference on Neural Networks",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 337,
+ "page_to": 344,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Storage problems are an important subclass of stochastic control problems. This paper presents a new method, approximate dynamic programming for storage, to solve storage problems with continuous, convex decision sets. Unlike other solution procedures, ADPS allows math programming to be used to make decisions each time period, even in the presence of large state variables. We test ADPS on the day ahead wind commitment problem with storage."
+ },
+ {
+ "author": [
+ "Jegelka, Stefanie",
+ "Bilmes, Jeff"
+ ],
+ "paper_title": "Online Submodular Minimization for Combinatorial Structures ",
+ "booktitle": "International Conference on Neural Information Processing",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 345,
+ "page_to": 352,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Most results for online decision problems with structured concepts, such as trees or cuts, assume linear costs. In many settings, however, nonlinear costs are more realistic. Owing to their non-separability, these lead to much harder optimization problems. Going beyond linearity, we address online approximation algorithms for structured concepts that allow the cost to be submodular, i.e., nonseparable. In particular, we show regret bounds for three Hannan-consistent strategies that capture different settings. Our results also tighten a regret bound for unconstrained online submodular minimization."
+ },
+ {
+ "author": [
+ "Norouzi, Mohammad",
+ "Fleet, David"
+ ],
+ "paper_title": "Minimal Loss Hashing for Compact Binary Codes",
+ "booktitle": "EuroPACS",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 353,
+ "page_to": 360,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We propose a method for learning similarity-preserving hash functions that map high-dimensional data onto binary codes. The formulation is based on structured prediction with latent variables and a hinge-like loss function. It is efficient to train for large datasets, scales well to large code lengths, and outperforms state-of-the-art methods."
+ },
+ {
+ "author": [
+ "Chen, Bo",
+ "Polatkan, Gungor",
+ "Sapiro, Guillermo",
+ "Dunson, David",
+ "Carin, Lawrence"
+ ],
+ "paper_title": "The Hierarchical Beta Process for Convolutional Factor Analysis and Deep Learning",
+ "booktitle": "International Workshop on Structural and Syntactic Pattern Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 361,
+ "page_to": 368,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:A convolutional factor-analysis model is developed, with the number of filters (factors) inferred via the beta process (BP) and hierarchical BP, for single-task and multi-task learning, respectively. The computation of the model parameters is implemented within a Bayesian setting, employing Gibbs sampling; we explicitly exploit the convolutional nature of the expansion to accelerate computations. The model is used in a multi-level (“deep”) analysis of general data, with specific results presented for image-processing data sets, e.g., classification."
+ },
+ {
+ "author": [
+ "Guillory, Andrew",
+ "Bilmes, Jeff"
+ ],
+ "paper_title": "Simultaneous Learning and Covering with Adversarial Noise ",
+ "booktitle": "International Colloquium on Grammatical Inference",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 369,
+ "page_to": 376,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We study simultaneous learning and covering problems: submodular set cover problems that depend on the solution to an active (query) learning problem. The goal is to jointly minimize the cost of both learning and covering. We extend recent work in this setting to allow for a limited amount of adversarial noise. Certain noisy query learning problems are a special case of our problem. Crucial to our analysis is a lemma showing the logical OR of two submodular cover constraints can be reduced to a single submodular set cover constraint. Combined with known results, this new lemma allows for arbitrary monotone circuits of submodular cover constraints to be reduced to a single constraint. As an example practical application, we present a movie recommendation website that minimizes the total cost of learning what the user wants to watch and recommending a set of movies."
+ },
+ {
+ "author": [
+ "Chen, Haojun",
+ "Dunson, David",
+ "Carin, Lawrence"
+ ],
+ "paper_title": "Topic Modeling with Nonparametric Markov Tree",
+ "booktitle": "International Work-Conference on Artificial and NaturalNeural Networks",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 377,
+ "page_to": 384,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:A new hierarchical tree-based topic model is developed, based on nonparametric Bayesian techniques. The model has two unique attributes: (i) a child node in the tree may have more than one parent, with the goal of eliminating redundant sub-topics deep in the tree; and (ii) parsimonious sub-topics are manifested, by removing redundant usage of words at multiple scales. The depth and width of the tree are unbounded within the prior, with a retrospective sampler employed to adaptively infer the appropriate tree size based upon the corpus under study. Excellent quantitative results are manifested on five standard data sets, and the inferred tree structure is also found to be highly interpretable."
+ },
+ {
+ "author": [
+ "Kuwadekar, Ankit",
+ "Neville, Jennifer"
+ ],
+ "paper_title": "Relational Active Learning for Joint Collective Classification Models",
+ "booktitle": "International Conference on Biometrics",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 385,
+ "page_to": 392,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In many network domains, labeled data may be costly to acquire---indicating a need for {\\em relational active learning} methods. Recent work has demonstrated that relational model performance can be improved by taking network structure into account when choosing instances to label. However, in collective inference settings, {\\em both} model estimation {\\em and} prediction can be improved by acquiring a node's label---since relational models estimate a joint distribution over labels in the network and collective classification methods propagate information from labeled training data during prediction. This conflates improvement in learning with improvement in inference, since labeling nodes can reduce inference error without improving the overall quality of the learned model. Here, we use {\\em across-network} classification to separate the effects on learning and prediction, and focus on reduction of learning error. When label propagation is used for learning, we find that labeling based on prediction {\\em certainty} is more effective than labeling based on {\\em uncertainty}. As such, we propose a novel active learning method that combines a network-based {\\em certainty} metric with semi-supervised learning and relational resampling. We evaluate our approach on synthetic and real-world networks and show faster learning compared to several baselines, including the network based method of Bilgic et al. 2010."
+ },
+ {
+ "author": [
+ "Kumar, Abhishek",
+ "III, Hal Daume"
+ ],
+ "paper_title": "A Co-training Approach for Multi-view Spectral Clustering ",
+ "booktitle": "European Conference on Computational Learning Theory",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 393,
+ "page_to": 400,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We propose a spectral clustering algorithm for the multi-view setting where we have access to multiple views of the data, each of which can be independently used for clustering. Our spectral clustering algorithm has a flavor of co-training, which is already a widely used idea in semi-supervised learning. We work on the assumption that the true underlying clustering would assign a point to the same cluster irrespective of the view. Hence, we constrain our approach to only search for the clusterings that agree across the views. Our algorithm does not have any hyperparameters to set, which is a major advantage in unsupervised learning. We empirically compare with a number of baseline methods on synthetic and real-world datasets to show the efficacy of the proposed algorithm."
+ },
+ {
+ "author": [
+ "Harel, Maayan",
+ "Mannor, Shie"
+ ],
+ "paper_title": "Learning from Multiple Outlooks",
+ "booktitle": "International Conference on Natural Computation",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 401,
+ "page_to": 408,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We propose a novel problem formulation of learning a single task when the data are provided in different feature spaces. Each such space is called an outlook, and is assumed to contain both labeled and unlabeled data. The objective is to take advantage of the data from all the outlooks to better classify each of the outlooks. We devise an algorithm that computes optimal affine mappings from different outlooks to a target outlook by matching moments of the empirical distributions. We further derive a probabilistic interpretation of the resulting algorithm and a sample complexity bound indicating how many samples are needed to adequately find the mapping. We report the results of extensive experiments on activity recognition tasks that show the value of the proposed approach in boosting performance."
+ },
+ {
+ "author": [
+ "Cossalter, Michele",
+ "Yan, Rong",
+ "Zheng, Lu"
+ ],
+ "paper_title": "Adaptive Kernel Approximation for Large-Scale Non-Linear SVM Prediction",
+ "booktitle": "Machine Learning and Cybernetics",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 409,
+ "page_to": 416,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:The applicability of non-linear support vector machines (SVMs) has been limited in large-scale data collections because of their linear prediction complexity to the size of support vectors. We propose an efficient prediction algorithm with performance guarantee for non-linear SVMs, termed AdaptSVM. It can selectively collapse the kernel function computation to a reduced set of support vectors, compensated by an additional correction term that can be easily computed on-line. It also allows adaptive fall-back to original kernel computation based on its estimated variance and maximum error tolerance. In addition to theoretical analysis, we empirically evaluate on multiple large-scale datasets to show that the proposed algorithm can speed up the prediction process up to 10000 times with only <0.5 accuracy loss."
+ },
+ {
+ "author": [
+ "Garcia-Garcia, Dario",
+ "von Luxburg, Ulrike",
+ "Santos-Rodr\\'{i}iguez, Ra\\'{u}l"
+ ],
+ "paper_title": "Risk-Based Generalizations of f-divergences",
+ "booktitle": "International Conference on Biometric Authentication",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 417,
+ "page_to": 424,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We derive a generalized notion of f-divergences, called (f,l)-divergences. We show that this generalization enjoys many of the nice properties of f-divergences, although it is a richer family. It also provides alternative definitions of standard divergences in terms of surrogate risks. As a first practical application of this theory, we derive a new estimator for the Kulback-Leibler divergence that we use for clustering sets of vectors."
+ },
+ {
+ "author": [
+ "Quadrianto, Novi",
+ "Lampert, Christoph"
+ ],
+ "paper_title": "Learning Multi-View Neighborhood Preserving Projections ",
+ "booktitle": "Automatic Identification Advanced Technologies",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 425,
+ "page_to": 432,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We address the problem of metric learning for multi-view data, namely the construction of embedding projections from data in different representations into a shared feature space, such that the Euclidean distance in this space provides a meaningful within-view as well as between-view similarity. Our motivation stems from the problem of cross-media retrieval tasks, where the availability of a joint Euclidean distance function is a prerequisite to allow fast, in particular hashing-based, nearest neighbor queries. We formulate an objective function that expresses the intuitive concept that matching samples are mapped closely together in the output space, whereas non-matching samples are pushed apart, no matter in which view they are available. The resulting optimization problem is not convex, but it can be decomposed explicitly into a convex and a concave part, thereby allowing efficient optimization using the convex-concave procedure. Experiments on an image retrieval task show that nearest-neighbor based cross-view retrieval is indeed possible, and the proposed technique improves the retrieval accuracy over baseline techniques."
+ },
+ {
+ "author": [
+ "Orabona, Francesco",
+ "Cesa-Bianchi, Nicol\\`{o}"
+ ],
+ "paper_title": "Better Algorithms for Selective Sampling ",
+ "booktitle": "Indian Conference on Computer Vision, Graphics & Image Processing",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 433,
+ "page_to": 440,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We study online algorithms for selective sampling that use regularized least squares (RLS) as base classifier. These algorithms typically perform well in practice, and some of them have formal guarantees on their mistake and query rates. We refine and extend these guarantees in various ways, proposing algorithmic variants that exhibit better empirical behavior while enjoying performance guarantees under much more general conditions. We also show a simple way of coupling a generic gradient-based classifier with a specific RLS-based selective sampler, obtaining hybrid algorithms with combined performance guarantees."
+ },
+ {
+ "author": [
+ "Robbiano, Sylvain",
+ "Cl\\'{e}mencon, St\\'{e}phan"
+ ],
+ "paper_title": "Minimax Learning Rates for Bipartite Ranking and Plug-in Rules",
+ "booktitle": "Support Vector Machines",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 441,
+ "page_to": 448,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:While it is now well-known in the standard binary classi\fcation setup, that, under suitable margin assumptions and complexity conditions on the regression function, fast or even super-fast rates (i.e. rates faster than n^(-1/2) or even faster than n^-1) can be achieved by plug-in classi\fers, no result of this nature has been proved yet in the context of bipartite ranking, though akin to that of classi\fcation. It is the main purpose of the present paper to investigate this issue. Viewing bipartite ranking as a nested continuous collection of cost-sensitive classi\fcation problems, we exhibit a global low noise condition under which certain plug-in ranking rules can be shown to achieve fast (but not super-fast) rates, establishing thus minimax upper bounds for the excess of ranking risk."
+ },
+ {
+ "author": [
+ "Jetchev, Nikolay",
+ "Toussaint, Marc"
+ ],
+ "paper_title": "Task Space Retrieval Using Inverse Feedback Control ",
+ "booktitle": "ICCI(ieee) - International Conference on Cognitive Informatics",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 449,
+ "page_to": 456,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Learning complex skills by repeating and generalizing expert behavior is a fundamental problem in robotics. A common approach is learning from demonstration: given examples of correct motions, learn a policy mapping state to action consistent with the training data. However, the usual approaches do not answer the question of what are appropriate representations to generate motions for specific tasks. Inspired by Inverse Optimal Control, we present a novel method to learn latent costs, imitate and generalize demonstrated behavior, and discover a task relevant motion representation: Task Space Retrieval Using Inverse Feedback Control (TRIC). We use the learned latent costs to create motion with a feedback controller. We tested our method on robot grasping of objects, a challenging high-dimensional task. TRIC learns the important control dimensions for the grasping task from a few example movements and is able to robustly approach and grasp objects in new situations."
+ },
+ {
+ "author": [
+ "Virtanen, Seppo",
+ "Klami, Arto",
+ "Kaski, Samuel"
+ ],
+ "paper_title": "Bayesian CCA via Group Sparsity",
+ "booktitle": "Machine Learning and Data Mining in Pattern Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 457,
+ "page_to": 464,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Bayesian treatments of Canonical Correlation Analysis (CCA) -type latent variable models have been recently proposed for coping with overfitting in small sample sizes, as well as for producing factorizations of the data sources into correlated and non-shared effects. However, all of the current implementations of Bayesian CCA and its extensions are computationally inefficient for high-dimensional data and, as shown in this paper, break down completely for high-dimensional sources with low sample count. Furthermore, they cannot reliably separate the correlated effects from non-shared ones. We propose a new Bayesian CCA variant that is computationally efficient and works for high-dimensional data, while also learning the factorization more accurately. The improvements are gained by introducing a group sparsity assumption and an improved variational approximation. The method is demonstrated to work well on multi-label prediction tasks and in analyzing brain correlates of naturalistic audio stimulation."
+ },
+ {
+ "author": [
+ "Deisenroth, Marc",
+ "Rasmussen, Carl"
+ ],
+ "paper_title": "PILCO: A Model-Based and Data-Efficient Approach to Policy Search ",
+ "booktitle": "Advances in Pattern Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 465,
+ "page_to": 472,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In this paper, we introduce PILCO, a practical, data-efficient model-based policy search method. PILCO reduces model bias, one of the key problems of model-based reinforcement learning, in a principled way. By learning a probabilistic dynamics model and explicitly incorporating model uncertainty into long-term planning, PILCO can cope with very little data and facilitates learning from scratch in only a few trials. Policy evaluation is performed in closed form using state-of-the-art approximate inference. Furthermore, policy gradients are computed analytically for policy improvement. We report unprecedented learning efficiency on challenging and high-dimensional control tasks."
+ },
+ {
+ "author": [
+ "Karasuyama, Masayuki",
+ "Takeuchi, Ichiro"
+ ],
+ "paper_title": "Suboptimal Solution Path Algorithm for Support Vector Machine ",
+ "booktitle": "Graph Based Representations in Pattern Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 473,
+ "page_to": 480,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We consider a suboptimal solution path algorithm for the Support Vector Machine. The solution path algorithm is known as an effective tool for solving a sequence of a parametrized optimization problems in machine learning. However, the algorithm needs to keep strict optimality conditions satisfied everywhere on the path. This requirement narrows the applicability of the path algorithm and adversely affects its computational efficiency. In our algorithm, user can specify tolerances to the optimality and control the trade-off between accuracy of the solution and the computational cost. We also show that our suboptimal solutions can be interpreted as the solution of a perturbed optimization problem from the original one, provide some theoretical analyses of our algorithm based on a novel interpretation. The experimental results demonstrate the effectiveness of our algorithm in terms of efficiency and accuracy."
+ },
+ {
+ "author": [
+ "Sun, Yi",
+ "Gomez, Faustino",
+ "Ring, Mark",
+ "Schmidhuber, J\\\"{u}rgen"
+ ],
+ "paper_title": "Incremental Basis Construction from Temporal Difference Error ",
+ "booktitle": "Stochastic Algorithms",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 481,
+ "page_to": 488,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In many reinforcement-learning (RL) systems, the value function is approximated as a linear combination of a fixed set of basis functions. Performance can be improved by adding to this set. Previous approaches construct a series of basis functions that in sufficient number can eventually represent the value function. In contrast, we show that there is a single, ideal basis function, which can directly represent the value function. Its addition to the set immediately reduces the error to zero---without changing existing weights. Moreover, this ideal basis function is simply the value function that results from replacing the MDP's reward function with its Bellman error. This result suggests a novel method for improving value-function estimation: a primary reinforcement learner estimates its value function using its present basis functions; it then sends its TD error to a secondary learner, which interprets that error as a reward function and estimates the corresponding value function; the resulting value function then becomes the primary learner's new basis function. We present both batch and online versions in combination with incremental basis projection, and demonstrate that the performance is superior to existing methods, especially in the case of large discount factors."
+ },
+ {
+ "author": [
+ "Gerrish, Sean",
+ "Blei, David"
+ ],
+ "paper_title": "Predicting Legislative Roll Calls from Text ",
+ "booktitle": "International Conference on Intelligent Computing",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 489,
+ "page_to": 496,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We develop several predictive models linking legislative sentiment to legislative text. Our models, which draw on ideas from ideal point estimation and topic models, predict voting patterns based on the contents of bills and infer the political leanings of legislators. With supervised topics, we provide an exploratory window into how the language of the law is correlated with political support. We also derive approximate posterior inference algorithms based on variational methods. Across 12 years of legislative data, we predict specific voting patterns with high accuracy."
+ },
+ {
+ "author": [
+ "Nakajima, Shinichi",
+ "Sugiyama, Masashi",
+ "Babacan, Derin"
+ ],
+ "paper_title": "On Bayesian PCA: Automatic Dimensionality Selection and Analytic Solution",
+ "booktitle": "Bildverarbeitung fur die Medizin",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 497,
+ "page_to": 504,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In probabilistic PCA, the fully Bayesian estimation is computationally intractable. To cope with this problem, two types of approximation schemes were introduced: the partially Bayesian PCA (PB-PCA) where only the latent variables are integrated out, and the variational Bayesian PCA (VB-PCA) where the loading vectors are also integrated out. The VB-PCA was proposed as an improved variant of PB-PCA for enabling automatic dimensionality selection (ADS). In this paper, we investigate whether VB-PCA is really the best choice from the viewpoints of computational efficiency and ADS. We first show that ADS is not the unique feature of VB-PCA---PB-PCA is also actually equipped with ADS. We further show that PB-PCA is more advantageous in computational efficiency than VB-PCA because the global solution of PB-PCA can be computed analytically. However, we also show the negative fact that PB-PCA results in a trivial solution in the empirical Bayesian framework. We next consider a simplified variant of VB-PCA, where the latent variables and loading vectors are assumed to be mutually independent (while the ordinary VB-PCA only requires matrix-wise independence). We show that this simplified VB-PCA is the most advantageous in practice because its empirical Bayes solution experimentally works as well as the original VB-PCA, and its global optimal solution can be computed efficiently in a closed form."
+ },
+ {
+ "author": [
+ "Bylander, Tom"
+ ],
+ "paper_title": "Learning Linear Functions with Quadratic and Linear Multiplicative Updates",
+ "booktitle": "International Conference on Artificial Intelligence and Soft Computing",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 505,
+ "page_to": 512,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We analyze variations of multiplicative updates for learning linear functions online. These can be described as substituting exponentiation in the Exponentiated Gradient (EG) algorithm with quadratic and linear functions. Both kinds of updates substitute exponentiation with simpler operations and reduce dependence on the parameter that specifies the sum of the weights during learning. In particular, the linear multiplicative update places no restrictions on the sum of the weights, and, under a wide range of conditions, achieves worst-case behavior close to the EG algorithm. We perform our analysis for square loss and absolute loss, and for regression and classification. We also describe some experiments showing that the performance of our algorithms are comparable to EG and the $p$-norm algorithm."
+ },
+ {
+ "author": [
+ "Glorot, Xavier",
+ "Bordes, Antoine",
+ "Bengio, Yoshua"
+ ],
+ "paper_title": "Domain Adaptation for Large-Scale Sentiment Classification: A Deep Learning Approach",
+ "booktitle": "Brazilian Symposium on Neural Networks",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 513,
+ "page_to": 520,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:The exponential increase in the availability of online reviews and recommendations makes sentiment classification an interesting topic in academic and industrial research. Reviews can span so many different domains that it is difficult to gather annotated training data for all of them. Hence, this paper studies the problem of domain adaptation for sentiment classifiers, hereby a system is trained on labeled reviews from one source domain but is meant to be deployed on another. We propose a deep learning approach which learns to extract a meaningful representation for each review in an unsupervised fashion. Sentiment classifiers trained with this high-level feature representation clearly outperform state-of-the-art methods on a benchmark composed of reviews of 4 types of Amazon products. Furthermore, this method scales well and allowed us to successfully perform domain adaptation on a larger industrial-strength dataset of 22 domains."
+ },
+ {
+ "author": [
+ "Kang, Zhuoliang",
+ "Grauman, Kristen",
+ "Sha, Fei"
+ ],
+ "paper_title": "Learning with Whom to Share in Multi-task Feature Learning ",
+ "booktitle": "Enformatika Conferences",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 521,
+ "page_to": 528,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In multi-task learning (MTL), multiple tasks are learnt jointly. A major assumption for this paradigm is that all those tasks are indeed related so that the joint training is appropriate and beneficial. In this paper, we study the problem of multi-task learning of shared feature representations among tasks, while simultaneously determining ``with whom'' each task should share. We formulate the problem as a mixed integer programming and provide an alternating minimization technique to solve the optimization problem of jointly identifying grouping structures and parameters. The algorithm monotonically decreases the objective function and converges to a local optimum. Compared to the standard MTL paradigm where all tasks are in a single group, our algorithm improves its performance with statistical significance for three out of the four datasets we have studied. We also demonstrate its advantage over other task grouping techniques investigated in literature."
+ },
+ {
+ "author": [
+ "Reyzin, Lev"
+ ],
+ "paper_title": "Boosting on a Budget: Sampling for Feature-Efficient Prediction ",
+ "booktitle": "Reading and Learning",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 529,
+ "page_to": 536,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In this paper, we tackle the problem of feature-efficient prediction: classification using a limited number of features per test example. We show that modifying an ensemble classifier such as AdaBoost, by sampling hypotheses from its final weighted predictor, is well-suited for this task. We further consider an extension of this problem, where the costs of examining the various features can differ from one another, and we give an algorithm for this more general setting. We prove the correctness of our algorithms and derive bounds for the number of samples needed for given error rates. We also experimentally verify the effectiveness of our methods."
+ },
+ {
+ "author": [
+ "Ikonomovska, Elena",
+ "Gama, João",
+ "Zenko, Bernard",
+ "Dzeroski, Saso"
+ ],
+ "paper_title": "Speeding-Up Hoeffding-Based Regression Trees With Options ",
+ "booktitle": "Iberoamerican Congress on Pattern Recognition CIARP",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 537,
+ "page_to": 544,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Data streams are ubiquitous and have in the last two decades become an important research topic. For their predictive non-parametric analysis, Hoeffding-based trees are often a method of choice, offering a possibility of any-time predictions. However, one of their main problems is the delay in learning progress due to the existence of equally discriminative attributes. Options are a natural way to deal with this problem. Option trees build upon regular trees by adding splitting options in the internal nodes. As such they are known to improve accuracy, stability and reduce ambiguity. In this paper, we present on-line option trees for faster learning on numerical data streams. Our results show that options improve the any-time performance of ordinary on-line regression trees, while preserving the interpretable structure of trees and without significantly increasing the computational complexity of the algorithm."
+ },
+ {
+ "author": [
+ "Meyer, Gilles",
+ "Bonnabel, Silvère",
+ "Sepulchre, Rodolphe"
+ ],
+ "paper_title": "Linear Regression under Fixed-Rank Constraints: A Riemannian Approach",
+ "booktitle": "Pattern Recognition and Machine Intelligence",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 545,
+ "page_to": 552,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In this paper, we tackle the problem of learning a linear regression model whose parameter is a fixed-rank matrix. We study the Riemannian manifold geometry of the set of fixed-rank matrices and develop efficient line-search algorithms. The proposed algorithms have many applications, scale to high-dimensional problems, enjoy local convergence properties and confer a geometric basis to recent contributions on learning fixed-rank matrices. Numerical experiments on benchmarks suggest that the proposed algorithms compete with the state-of-the-art, and that manifold optimization offers a versatile framework for the design of rank-constrained machine learning algorithms."
+ },
+ {
+ "author": [
+ "Luo, Dijun",
+ "Ding, Chris",
+ "Nie, Feiping",
+ "Huang, Heng"
+ ],
+ "paper_title": "Cauchy Graph Embedding",
+ "booktitle": "Pattern Recognition in Information Systems",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 553,
+ "page_to": 560,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Laplacian embedding provides a low-dimensional representation for the nodes of a graph where the edge weights denote pairwise similarity among the node objects. It is commonly assumed that the Laplacian embedding results preserve the local topology of the original data on the low-dimensional projected subspaces, i.e., for any pair of graph nodes with large similarity, they should be embedded closely in the embedded space. However, in this paper, we will show that the Laplacian embedding often cannot preserve local topology well as we expected. To enhance the local topology preserving property in graph embedding, we propose a novel Cauchy graph embedding which preserves the similarity relationships of the original data in the embedded space via a new objective. Consequentially the machine learning tasks (such as k Nearest Neighbor type classifications) can be easily conducted on the embedded data with better performance. The experimental results on both synthetic and real world benchmark data sets demonstrate the usefulness of this new type of embedding."
+ },
+ {
+ "author": [
+ "Rodriguez, Manuel Gomez",
+ "Balduzzi, David",
+ "Sch\\\"{o}lkopf, Bernhard"
+ ],
+ "paper_title": "Uncovering the Temporal Dynamics of Diffusion Networks ",
+ "booktitle": "IEEE Symposium on Computational Intelligence and Data Mining",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 561,
+ "page_to": 568,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Time plays an essential role in the diffusion of information, influence and disease over networks. In many cases we only observe when a node copies information, makes a decision or becomes infected -- but the connectivity, transmission rates between nodes and transmission sources are unknown. Inferring the underlying dynamics is of outstanding interest since it enables forecasting, influencing and retarding infections, broadly construed. To this end, we model diffusion processes as discrete networks of continuous temporal processes occurring at different rates. Given cascade data -- observed infection times of nodes -- we infer the edges of the global diffusion network and estimate the transmission rates of each edge that best explain the observed data. The optimization problem is convex. The model naturally (without heuristics) imposes sparse solutions and requires no parameter tuning. The problem decouples into a collection of independent smaller problems, thus scaling easily to networks on the order of hundreds of thousands of nodes. Experiments on real and synthetic data show that our algorithm both recovers the edges of diffusion networks and accurately estimates their transmission rates from cascade data."
+ },
+ {
+ "author": [
+ "Gao, Tianshi",
+ "Koller, Daphne"
+ ],
+ "paper_title": "Multiclass Boosting with Hinge Loss based on Output Coding ",
+ "booktitle": "Summer School on Neural Networks",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 569,
+ "page_to": 576,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Multiclass classification is an important and fundamental problem in machine learning. A popular family of multiclass classification methods belongs to reducing multiclass to binary based on output coding. Several multiclass boosting algorithms have been proposed to learn the coding matrix and the associated binary classifiers in a problem-dependent way. These algorithms can be unified under a sum-of-exponential loss function defined in the domain of margins. Instead, multiclass SVM uses another type of loss function based on hinge loss. In this paper, we present a new output-coding-based multiclass boosting algorithm using the multiclass hinge loss, which we call HingeBoost.OC. HingeBoost.OC is tested on various real world datasets and shows better performance than the existing multiclass boosting algorithm AdaBoost.ERP, one-vs-one, one-vs-all, ECOC and multiclass SVM in a majority of different cases."
+ },
+ {
+ "author": [
+ "Jegelka, Stefanie",
+ "Bilmes, Jeff"
+ ],
+ "paper_title": "Approximation Bounds for Inference using Cooperative Cuts ",
+ "booktitle": "Workshop on ML",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 577,
+ "page_to": 584,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We analyze a family of probability distributions that are characterized by an embedded combinatorial structure. This family includes models having arbitrary treewidth and arbitrary sized factors. Unlike general models with such freedom, where the “most probable explanation” (MPE) problem is inapproximable, the combinatorial structure within our model, in particular the indirect use of submodularity, leads to several MPE algorithms that all have approximation guarantees."
+ },
+ {
+ "author": [
+ "Hernandez-Orallo, Jose",
+ "Flach, Peter",
+ "Ferri, Cèsar"
+ ],
+ "paper_title": "Brier Curves: a New Cost-Based Visualisation of Classifier Performance",
+ "booktitle": "International Workshop on Combinatorial Image Analysis",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 585,
+ "page_to": 592,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:It is often necessary to evaluate classifier performance over a range of operating conditions, rather than as a point estimate. This is typically assessed through the construction of ‘curves’over a ‘space’, visualising how one or two performance metrics vary with the operating condition. For binary classifiers in particular, cost space is a natural way of showing this range of performance, visualising loss against operating condition. However, the curves which have been traditionally drawn in cost space, known as cost curves, show the optimal loss, and hence assume knowledge of the optimal decision threshold for a given operating condition. Clearly, this leads to an optimistic assessment of classifier performance. In this paper we propose a more natural way of visualising classifier performance in cost space, which is to plot probabilistic loss on the y-axis, i.e., the loss arising from the probability estimates. This new curve provides new ways of understanding classifier performance and new tools to compare classifiers. In addition, we show that the area under this curve is exactly the Brier score, one of the most popular performance metrics for probabilistic classifiers."
+ },
+ {
+ "author": [
+ "Brouard, C\\'{e}line",
+ "D'Alche-Buc, Florence",
+ "Szafranski, Marie"
+ ],
+ "paper_title": "Semi-supervised Penalized Output Kernel Regression for Link Prediction ",
+ "booktitle": "ICSC Symposium on Neural Computation",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 593,
+ "page_to": 600,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Link prediction is addressed as an output kernel learning task through semi-supervised Output Kernel Regression. Working in the framework of RKHS theory with vector-valued functions, we establish a new representer theorem devoted to semi-supervised least square regression. We then apply it to get a new model (POKR: Penalized Output Kernel Regression) and show its relevance using numerical experiments on artificial networks and two real applications using a very low percentage of labeled data in a transductive setting."
+ },
+ {
+ "author": [
+ "Nikolenko, Sergey",
+ "Sirotkin, Alexander"
+ ],
+ "paper_title": "A New Bayesian Rating System for Team Competitions ",
+ "booktitle": "Artificial Neural Networks in Pattern Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 601,
+ "page_to": 608,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We present a novel probabilistic rating system for team competitions. Building upon TrueSkill(tm), we change the factor graph structure to cope with the problems of TrueSkill(tm), e.g., multiway ties and variable team size. We give detailed inference algorithms for the new structure. Experimental results show a significant improvement over TrueSkill(tm)."
+ },
+ {
+ "author": [
+ "Sujeeth, Arvind",
+ "Lee, HyoukJoong",
+ "Brown, Kevin",
+ "Rompf, Tiark",
+ "Chafi, Hassan",
+ "Wu, Michael",
+ "Atreya, Anand",
+ "Odersky, Martin",
+ "Olukotun, Kunle"
+ ],
+ "paper_title": "OptiML: An Implicitly Parallel Domain-Specific Language for Machine Learning ",
+ "booktitle": "Emergent Neural Computational Architectures Based on Neuroscience",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 609,
+ "page_to": 616,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:As the size of datasets continues to grow, machine learning applications are becoming increasingly limited by the amount of available computational power. Taking advantage of modern hardware requires using multiple parallel programming models targeted at different devices (e.g. CPUs and GPUs). However, programming these devices to run efficiently and correctly is difficult, error-prone, and results in software that is harder to read and maintain. We present OptiML, a domain-specific language (DSL) for machine learning. OptiML is an implicitly parallel, expressive and high performance alternative to MATLAB and C++. OptiML performs domain-specific analyses and optimizations and automatically generates CUDA code for GPUs. We show that OptiML outperforms explicitly parallelized MATLAB code in nearly all cases."
+ },
+ {
+ "author": [
+ "Zhu, Jun",
+ "Chen, Ning",
+ "Xing, Eric"
+ ],
+ "paper_title": "Infinite SVM: a Dirichlet Process Mixture of Large-margin Kernel Machines ",
+ "booktitle": "EURASIP Workshop",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 617,
+ "page_to": 624,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We present Infinite SVM (iSVM), a Dirichlet process mixture of large-margin kernel machines for multi-way classification. An iSVM enjoys the advantages of both Bayesian nonparametrics in handling the unknown number of mixing components, and large-margin kernel machines in robustly capturing local nonlinearity of complex data. We develop an efficient variational learning algorithm for posterior inference of iSVM, and we demonstrate the advantages of iSVM over Dirichlet process mixture of generalized linear models and other benchmarks on both synthetic and real Flickr image classification datasets."
+ },
+ {
+ "author": [
+ "Li, Lingbo",
+ "Zhou, Mingyuan",
+ "Sapiro, Guillermo",
+ "Carin, Lawrence"
+ ],
+ "paper_title": "On the Integration of Topic Modeling and Dictionary Learning ",
+ "booktitle": "Sequence Learning",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 625,
+ "page_to": 632,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:A new nonparametric Bayesian model is developed to integrate dictionary learning and topic model into a unified framework. The model is employed to analyze partially annotated images, with the dictionary learning performed directly on image patches. Efficient inference is performed with a Gibbs-slice sampler, and encouraging results are reported on widely used datasets."
+ },
+ {
+ "author": [
+ "Benjamin Marlin, University of British Columbia",
+ "Mohammad Khan, University of British Columbia",
+ "Kevin Murphy, University of British Columbia"
+ ],
+ "paper_title": "Piecewise Bounds for Estimating Bernoulli-Logistic Latent Gaussian Models ",
+ "booktitle": "ROC Analysis in Artificial Intelligence",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 633,
+ "page_to": 640,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Bernoulli-logistic latent Gaussian models (bLGMs) are a useful model class, but accurate parameter estimation is complicated by the fact that the marginal likelihood contains an intractable logistic-Gaussian integral. In this work, we propose the use of fixed piecewise linear and quadratic upper bounds to the logistic-log-partition (LLP) function as a way of circumventing this intractable integral. We describe a framework for approximately computing minimax optimal piecewise quadratic bounds, as well a generalized expectation maximization algorithm based on using piecewise bounds to estimate bLGMs. We prove a theoretical result relating the maximum error in the LLP bound to the maximum error in the marginal likelihood estimate. Finally, we present empirical results showing that piecewise bounds can be significantly more accurate than previously proposed variational bounds."
+ },
+ {
+ "author": [
+ "Urner, Ruth",
+ "Shalev-Shwartz, Shai",
+ "Ben-David, Shai"
+ ],
+ "paper_title": "Access to Unlabeled Data can Speed up Prediction Time",
+ "booktitle": "International Conference on Emerging Trends in Engineering & Technology",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 641,
+ "page_to": 648,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Semi-supervised learning (SSL) addresses the problem of training a classifier using a small number of labeled examples and many unlabeled examples. Most previous work on SSL focused on how availability of unlabeled data can improve the accuracy of the learned classifiers. In this work we study how unlabeled data can be beneficial for constructing faster classifiers. We propose an SSL algorithmic framework which can utilize unlabeled examples for learning classifiers from a predefined set of fast classifiers. We formally analyze conditions under which our algorithmic paradigm obtains significant improvements by the use of unlabeled data. As a side benefit of our analysis we propose a novel quantitative measure of the so-called cluster assumption. We demonstrate the potential merits of our approach by conducting experiments on the MNIST data set, showing that, when a sufficiently large unlabeled sample is available, a fast classifier can be learned from much fewer labeled examples than without such a sample."
+ },
+ {
+ "author": [
+ "Roy, Jean-Francis",
+ "Laviolette, Francois",
+ "Marchand, Mario"
+ ],
+ "paper_title": "From PAC-Bayes Bounds to Quadratic Programs for Majority Votes ",
+ "booktitle": "Machine Learning; Models, Technologies and Applications",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 649,
+ "page_to": 656,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We propose to construct a weighted majority vote on a set of basis functions by minimizing a risk bound (called the C-bound) that depends on the first two moments of the margin of the Q-convex combination realized on the training data. This bound minimization algorithm turns out to be a quadratic program that can be efficiently solved. A first version of the algorithm is designed for the supervised inductive setting and turns out to be competitive with AdaBoost, MDBoost and the SVM. The second version of the algorithm, designed for the transductive setting, competes well with TSVM. We also propose a new PAC-Bayes theorem that bounds the difference between the \"true\" value of the C-bound and its empirical estimate and that, unexpectedly, contains no KL-divergence."
+ },
+ {
+ "author": [
+ "Flach, Peter",
+ "Hernandez-Orallo, Jose",
+ "Ferri, C\\`{e}sar"
+ ],
+ "paper_title": "A Coherent Interpretation of AUC as a Measure of Aggregated Classification Performance ",
+ "booktitle": "Recent Issues in Pattern Analysis and Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 657,
+ "page_to": 664,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:The area under the ROC curve (AUC), a well-known measure of ranking performance, is also often used as a measure of classification performance, aggregating over decision thresholds as well as class and cost skews. However, David Hand has recently argued that AUC is fundamentally incoherent as a measure of aggregated classifier performance and proposed an alternative measure. Specifically, Hand derives a linear relationship between AUC and expected minimum loss, where the expectation is taken over a distribution of the misclassification cost parameter that depends on the model under consideration. Replacing this distribution with a Beta(2;2) distribution, Hand derives his alternative measure H. In this paper we offer an alternative, coherent interpretation of AUC as linearly related to expected loss. We use a distribution over cost parameter and a distribution over data points, both uniform and hence model independent. Should one wish to consider only optimal thresholds, we demonstrate that a simple and more intuitive alternative to Hand’s H measure is already available in the form of the area under the cost curve."
+ },
+ {
+ "author": [
+ "Franc, Vojtech",
+ "Zien, Alexander",
+ "Sch\\\"{o}lkopf, Bernhard"
+ ],
+ "paper_title": "Support Vector Machines as Probabilistic Models ",
+ "booktitle": "Chinese Conference on Biometric Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 665,
+ "page_to": 672,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We show how the SVM can be viewed as a maximum likelihood estimate of a class of probabilistic models. This model class can be viewed as a reparametrization of the SVM in a similar vein to the $\\nu$-SVM reparametrizing the original SVM. It is not discriminative, but has a non-uniform marginal. We illustrate the benefits of this new view by re-deriving and re-investigating two established SVM-related algorithms."
+ },
+ {
+ "author": [
+ "Tamuz, Omer",
+ "Liu, Ce",
+ "Belongie, Serge",
+ "Shamir, Ohad",
+ "Kalai, Adam"
+ ],
+ "paper_title": "Adaptively Learning the Crowd Kernel ",
+ "booktitle": "Asian Fuzzy System Society",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 673,
+ "page_to": 680,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We introduce an algorithm that, given n objects, learns a similarity matrix over all n^2 pairs, from crowdsourced data *alone*. The algorithm samples responses to adaptively chosen triplet-based relative-similarity queries. Each query has the form \"is object a more similar to b or to c?\" and is chosen to be maximally informative given the preceding responses. The output is an embedding of the objects into Euclidean space (like MDS); we refer to this as the \"crowd kernel.\" SVMs reveal that the crowd kernel captures prominent and subtle features across a number of domains, such as \"is striped\" among neckties and \"vowel vs. consonant\" among letters."
+ },
+ {
+ "author": [
+ "Welling, Max",
+ "Teh, Yee Whye"
+ ],
+ "paper_title": "Bayesian Learning via Stochastic Gradient Langevin Dynamics",
+ "booktitle": "Workshop on Attention and Performance in Computational Vision",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 681,
+ "page_to": 688,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In this paper we propose a new framework for learning from large scale datasets based on iterative learning from small mini-batches. By adding the right amount of noise to a standard stochastic gradient optimization algorithm we show that the iterates will converge to samples from the true posterior distribution as we anneal the stepsize. This seamless transition between optimization and Bayesian posterior sampling provides an in-built protection against overfitting. We also propose a practical method for Monte Carlo estimates of posterior statistics which monitors a ``sampling threshold'' and collects samples after it has been surpassed. We apply the method to three models: a mixture of Gaussians, logistic regression and ICA with natural gradients."
+ },
+ {
+ "author": [
+ "Ngiam, Jiquan",
+ "Khosla, Aditya",
+ "Kim, Mingyu",
+ "Nam, Juhan",
+ "Lee, Honglak",
+ "Ng, Andrew"
+ ],
+ "paper_title": "Multimodal Deep Learning",
+ "booktitle": "Human Interactive Proofs",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 689,
+ "page_to": 696,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Deep networks have been successfully applied to unsupervised feature learning for single modalities (e.g., text, images or audio). In this work, we propose a novel application of deep networks to learn features over multiple modalities. We present a series of tasks for multimodal learning and show how to train deep networks that learn features to address these tasks. In particular, we demonstrate cross modality feature learning, where better features for one modality (e.g., video) can be learned if multiple modalities (e.g., audio and video) are present at feature learning time. Furthermore, we show how to learn a shared representation between modalities and evaluate it on a unique task, where the classifier is trained with audio-only data but tested with video-only data and vice-versa. Our methods are validated on the CUAVE and AVLetters datasets with an audio-visual speech classification task, demonstrating best published visual speech classification on AVLetters and effective shared representation learning."
+ },
+ {
+ "author": [
+ "Kim, JooSeuk",
+ "Scott, Clayton"
+ ],
+ "paper_title": "On the Robustness of Kernel Density M-Estimators ",
+ "booktitle": "Italian Workshop on Neural Neural Nets",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 697,
+ "page_to": 704,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We analyze a method for nonparametric density estimation that exhibits robustness to contamination of the training sample. This method achieves robustness by combining a traditional kernel density estimator (KDE) with ideas from classical M-estimation. The KDE based on a Gaussian kernel is interpreted as a sample mean in the associated reproducing kernel Hilbert space (RKHS). This mean is estimated robustly through the use of a robust loss, yielding the so-called robust kernel density estimator (RKDE). This robust sample mean can be found via a kernelized iteratively re-weighted least squares (IRWLS) algorithm. Our contributions are summarized as follows. First, we present a representer theorem for the RKDE, which gives an insight into the robustness of the RKDE. Second, we provide necessary and sufficient conditions for kernel IRWLS to converge to the global minimizer, in the Gaussian RKHS, of the objective function defining the RKDE. Third, characterize and provide a method for computing the influence function associated with the RKDE. Fourth, we illustrate the robustness of the RKDE through experiments on several data sets."
+ },
+ {
+ "author": [
+ "Rai, Piyush",
+ "III, Hal Daume"
+ ],
+ "paper_title": "Beam Search based MAP Estimates for the Indian Buffet Process ",
+ "booktitle": "International Conference on Computing: Theory and Applications",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 705,
+ "page_to": 712,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Nonparametric latent feature models offer a flexible way to discover the latent features underlying the data, without having to a priori specify their number. The Indian Buffet Process (IBP) is a popular example of such a model. Inference in IBP based models, however, remains a challenge. Sampling techniques such as MCMC can be computationally expensive and can take a long time to converge to the stationary distribution. Variational techniques, although faster than sampling, can be difficult to design, and can still remain slow on large data. In many problems, however, we only seek a maximum a posteriori (MAP) estimate of the latent feature assignment matrix. For such cases, we show that techniques such as beam search can give fast, approximate MAP estimates in the IBP based models. If samples from the posterior are desired, these MAP estimates can also serve as sensible initializers for MCMC based algorithms. Experimental results on a variety of datasets suggest that our algorithms can be a computationally viable alternative to Gibbs sampling, the particle filter, and variational inference based approaches for the IBP, and also perform better than other heuristics such as greedy search."
+ },
+ {
+ "author": [
+ "Dekel, Ofer",
+ "Gilad-Bachrach, Ran",
+ "Shamir, Ohad",
+ "Xiao, Lin"
+ ],
+ "paper_title": "Optimal Distributed Online Prediction ",
+ "booktitle": "Turkish Symposium on Artificial Intelligence and Neural Networks",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 713,
+ "page_to": 720,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Online prediction methods are typically studied as serial algorithms running on a single processor. In this paper, we present the distributed mini-batch (DMB) framework, a method of converting a serial gradient-based online algorithm into a distributed algorithm, and prove an asymptotically optimal regret bound for smooth convex loss functions and stochastic examples. Our analysis explicitly takes into account communication latencies between computing nodes in a network. We also present robust variants, which are resilient to failures and node heterogeneity in an synchronous distributed environment. Our method can also be used for distributed stochastic optimization, attaining an asymptotically linear speedup. Finally, we empirically demonstrate the merits of our approach on large-scale online prediction problems."
+ },
+ {
+ "author": [
+ "Knowles, David",
+ "Gael, Jurgen Van",
+ "Ghahramani, Zoubin"
+ ],
+ "paper_title": "Message Passing Algorithms for the Dirichlet Diffusion Tree ",
+ "booktitle": "Biometric Recognition Systems",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 721,
+ "page_to": 728,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We demonstrate efficient approximate inference for the Dirichlet Diffusion Tree, a Bayesian nonparametric prior over tree structures. Although DDTs provide a powerful and elegant approach for modeling hierarchies they haven't seen much use to date. One problem is the computational cost of MCMC inference. We provide the first deterministic approximate inference methods for DDT models and show excellent performance compared to the MCMC alternative. We present message passing algorithms to approximate the Bayesian model evidence for a specific tree. This is used to drive sequential tree building and greedy search to find optimal tree structures, corresponding to hierarchical clusterings of the data. We demonstrate appropriate observation models for continuous and binary data. The empirical performance of our method is very close to the computationally expensive MCMC alternative on a density estimation problem, and significantly outperforms kernel density estimators."
+ },
+ {
+ "author": [
+ "Peng, Jian",
+ "Hazan, Tamir",
+ "McAllester, David",
+ "Urtasun, Raquel"
+ ],
+ "paper_title": "Convex Max-Product over Compact Sets for Protein Folding",
+ "booktitle": "MirrorBot Project",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 729,
+ "page_to": 736,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In this paper we present an approach to inference in graphical models with mixture of discrete and bounded continuous variables. In particular, we extend convex max-product to deal with these hybrid models and derive the conditions under which our approach is guaranteed to produce the MAP assignment. When dealing with continuous variables the messages are functions. We investigate a multi-grid approach which can be viewed as a piecewise constant representation of these messages. While this approach provides the theoretical guarantees it is not very practical. Inspired by this, we further propose a particle convex max-product algorithm that significantly outperforms existing particle methods in the task of protein folding and performs comparable to the state-of-the art while using a smaller amount of prior knowledge."
+ },
+ {
+ "author": [
+ "Chakraborty, Doran",
+ "Stone, Peter"
+ ],
+ "paper_title": "Structure Learning in Ergodic Factored MDPs without Knowledge of the Transition Function's In-Degree ",
+ "booktitle": "Deterministic and Statistical Methods in Machine Learning",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 737,
+ "page_to": 744,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:This paper introduces Learn Structure and Exploit RMax (LSE-RMax), a novel model based structure learning algorithm for ergodic factored-state MDPs. Given a planning horizon that satisfies a condition, LSE-RMax provably guarantees a return very close to the optimal return, with a high certainty, without requiring any prior knowledge of the in-degree of the transition function as input. LSE-RMax is fully implemented with a thorough analysis of its sample complexity. We also present empirical results demonstrating its effectiveness compared to prior approaches to the problem."
+ },
+ {
+ "author": [
+ "Hocking, Toby",
+ "Vert, Jean-Philippe",
+ "Bach, Francis",
+ "Joulin, Armand"
+ ],
+ "paper_title": "Clusterpath: an Algorithm for Clustering using Convex Fusion Penalties ",
+ "booktitle": "Brain, Vision, and Artificial Intelligence",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 745,
+ "page_to": 752,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract: We present a new clustering algorithm by proposing a convex relaxation of hierarchical clustering, which results in a family of objective functions with a natural geometric interpretation. We give efficient algorithms for calculating the continuous regularization path of solutions, and discuss relative advantages of the parameters. Our method experimentally gives state-of-the-art results similar to spectral clustering for non-convex clusters, and has the added benefit of learning a tree structure from the data."
+ },
+ {
+ "author": [
+ "Shieh, Albert",
+ "Hashimoto, Tatsunori",
+ "Airoldi, Edo"
+ ],
+ "paper_title": "Tree preserving embedding ",
+ "booktitle": "Neural Networks and Computational Intelligence",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 753,
+ "page_to": 760,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Visualization techniques for complex data are a workhorse of modern scientific pursuits. The goal of visualization is to embed high dimensional data in a low dimensional space, while preserving structure in the data relevant to exploratory data analysis, such as the existence of clusters. However, existing visualization methods often either entirely fail to preserve clusters in embeddings due to the crowding problem or can only preserve clusters at a single resolution. Here, we develop a new approach to visualization, tree preserving embedding (TPE). Our approach takes advantage of the topological notion of connectedness to provably preserve clusters at all resolutions. Our performance guarantee holds for finite samples, which makes TPE a robust method for applications. Our approach suggests new strategies for robust data visualization in practice."
+ },
+ {
+ "author": [
+ "Arora, Raman",
+ "Gupta, Maya",
+ "Kapila, Amol",
+ "Maryam Fazel"
+ ],
+ "paper_title": "Clustering by Left-Stochastic Matrix Factorization ",
+ "booktitle": "Artificial Neural Networks",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 761,
+ "page_to": 768,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We propose clustering samples given their pairwise similarities by factorizing the similarity matrix into the product of a cluster probability matrix and its transpose. We propose a rotation-based algorithm to compute this left-stochastic decomposition (LSD). Theoretical results link the LSD clustering method to a soft kernel k-means clustering, give conditions for when the factorization and clustering are unique, and provide error bounds. Experimental results on simulated and real similarity datasets show that the proposed method reliably provides accurate clusterings."
+ },
+ {
+ "author": [
+ "Liu, Miao",
+ "Liao, Xuejun",
+ "Carin, Lawrence"
+ ],
+ "paper_title": "The Infinite Regionalized Policy Representation ",
+ "booktitle": "Large-Scale Knowledge Resources",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 769,
+ "page_to": 776,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We introduce the infinite regionalized policy presentation (iRPR), as a nonparametric policy for reinforcement learning in partially observable Markov decision processes (POMDPs). The iRPR assumes an unbounded set of decision states a priori, and infers the number of states to represent the policy given the experiences. We propose algorithms for learning the number of decision states while maintaining a proper balance between exploration and exploitation. Convergence analysis is provided, along with performance evaluations on benchmark problems."
+ },
+ {
+ "author": [
+ "Wick, Michael",
+ "Rohanimanesh, Khashayar",
+ "Bellare, Kedar",
+ "Culotta, Aron",
+ "McCallum, Andrew"
+ ],
+ "paper_title": "SampleRank: Training Factor Graphs with Atomic Gradients",
+ "booktitle": "Knowledge Representation and Organization in Machine Learning",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 777,
+ "page_to": 784,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We present SampleRank, an alternative to contrastive divergence (CD) for estimating parameters in complex graphical models. SampleRank harnesses a user-provided loss function to distribute stochastic gradients across an MCMC chain. As a result, parameter updates can be computed between arbitrary MCMC states. SampleRank is not only faster than CD, but also achieves better accuracy in practice (up to 23\\% error reduction on noun-phrase coreference)."
+ },
+ {
+ "author": [
+ "Zhang, XianXing",
+ "Dunson, David",
+ "Carin, Lawrence"
+ ],
+ "paper_title": "Tree-Structured Infinite Sparse Factor Model",
+ "booktitle": "European Summer School on Multi-Agent Control",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 785,
+ "page_to": 792,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:A new tree-structured multiplicative gamma process (TMGP) is developed, for inferring the depth of a tree-based factor-analysis model. This new model is coupled with the nested Chinese restaurant process, to nonparametrically infer the depth and width (structure) of the tree. In addition to developing the model, theoretical properties of the TMGP are addressed, and a novel MCMC sampler is developed. The structure of the inferred tree is used to learn relationships between high-dimensional data, and the model is also applied to compressive sensing and interpolation of incomplete images."
+ },
+ {
+ "author": [
+ "Vattani, Andrea",
+ "Chakrabarti, Deepayan",
+ "Gurevich, Maxim"
+ ],
+ "paper_title": "Preserving Personalized Pagerank in Subgraphs",
+ "booktitle": "Subspace, Latent Structure and Feature Selection",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 793,
+ "page_to": 800,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Choosing a subgraph that can concisely represent a large real-world graph is useful in many scenarios. The usual strategy employed is to sample nodes so that the induced subgraph matches the original graph’s degree distribution, clustering coefficient, etc., but no attempt is made to preserve fine-grained relationships between nodes, which are vital for applications like clustering, classification, and ranking. In this work, we model such relationships via the notion of Personalized PageRank Value (PPV). We show that induced subgraphs output by current sampling methods do not preserve PPVs, and propose algorithms for creating PPV-preserving subgraphs on any given subset of graph nodes. Experiments on three large real-world graphs show that the subgraphs created by our method improve upon induced subgraphs in terms of preserving PPVs, clustering accuracy, and maintaining basic graph properties."
+ },
+ {
+ "author": [
+ "Xiao, Lin",
+ "Zhou, Dengyong",
+ "Wu, Mingrui"
+ ],
+ "paper_title": "Hierarchical Classification via Orthogonal Transfer ",
+ "booktitle": "Computer Recognition Systems",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 801,
+ "page_to": 808,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We consider multiclass classification problems where the set of labels are organized hierarchically as a category tree. We associate each node in the tree with a classifier and classify the examples recursively from the root to the leaves. We propose a hierarchical Support Vector Machine (SVM) that encourages the classifier at each node to be different from the classifiers at its ancestors. More specifically, we introduce regularizations that force the normal vector of the classifying hyperplane at each node to be orthogonal to those at its ancestors as much as possible. We establish conditions under which training such a hierarchical SVM is a convex optimization problem, and develop an efficient dual-averaging method for solving it. We evaluate the method on a number of real-world text categorization tasks and obtain state-of-the-art performance."
+ },
+ {
+ "author": [
+ "Nickel, Maximilian",
+ "Tresp, Volker",
+ "Kriegel, Hans-Peter"
+ ],
+ "paper_title": "A Three-Way Model for Collective Learning on Multi-Relational Data",
+ "booktitle": "Nonlinear Analyses and Algorithms for Speech Processing",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 809,
+ "page_to": 816,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Relational learning is becoming increasingly important in many areas of application. Here, we present a novel approach to relational learning based on the factorization of a three-way tensor. We show that unlike other tensor approaches, our method is able to perform collective learning via the latent components of the model and provide an efficient algorithm to compute the factorization. We substantiate our theoretical considerations regarding the collective learning capabilities of our model by the means of experiments on both a new dataset and a dataset commonly used in entity resolution. Furthermore, we show on common benchmark datasets that our approach achieves better or on-par results, if compared to current state-of-the-art relational learning solutions, while it is significantly faster to compute."
+ },
+ {
+ "author": [
+ "Neumann, Gerhard"
+ ],
+ "paper_title": "Variational Inference for Policy Search in changing situations ",
+ "booktitle": "Signal Processing, Pattern Recognition, and Applications",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 817,
+ "page_to": 824,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Many policy search algorithms minimize the Kullback-Leibler (KL) divergence to a certain target distribution in order to fit their policy. The commonly used KL-divergence forces the resulting policy to be 'reward-attracted'. The policy tries to reproduce all positively rewarded experience while negative experience is neglected. However, the KL-divergence is not symmetric and we can also minimize the the reversed KL-divergence, which is typically used in variational inference. The policy now becomes 'cost-averse'. It tries to avoid reproducing any negatively-rewarded experience while maximizing exploration. Due to this 'cost-averseness' of the policy, Variational Inference for Policy Search (VIP) has several interesting properties. It requires no kernel-bandwith nor exploration rate, such settings are determined automatically by the inference. The algorithm meets the performance of state-of-the-art methods while being applicable to simultaneously learning in multiple situations. We concentrate on using VIP for policy search in robotics. We apply our algorithm to learn dynamic counterbalancing of different kinds of pushes with a human-like 4-link robot."
+ },
+ {
+ "author": [
+ "Buffoni, David",
+ "Calauzenes, Cl\\'{e}ment",
+ "Gallinari, Patrick",
+ "Usunier, Nicolas"
+ ],
+ "paper_title": "Learning Scoring Functions with Order-Preserving Losses and Standardized Supervision ",
+ "booktitle": "International Workshop on Intelligent Computing in Pattern Analysis/Synthesis",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 825,
+ "page_to": 832,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We address the problem of designing surrogate losses for learning scoring functions in the context of label ranking. We extend to ranking problems a notion of order preserving losses previously introduced for multiclass classi?cation, and show that these losses lead to consistent formulations with respect to a family of ranking evaluation metrics. An order-preserving loss can be tailored for a given evaluation metric by appropriately setting some weights depending on this metric and the observed supervision. These weights, called the standard form of the supervision, do not always exist, but we show that previous consistency results for ranking were proved in special cases where they do. We then evaluate a new pairwise loss consistent with the (Normalized) Discounted Cumulative Gain on benchmark datasets."
+ },
+ {
+ "author": [
+ "Rifai, Salah",
+ "Vincent, Pascal",
+ "Muller, Xavier",
+ "Glorot, Xavier",
+ "Bengio, Yoshua"
+ ],
+ "paper_title": "Contractive Auto-Encoders: Explicit Invariance During Feature Extraction ",
+ "booktitle": "Analysis of Neural Network Applications",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 833,
+ "page_to": 840,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We present in this paper a novel approach for training deterministic auto-encoders. We show that by adding a well chosen penalty term to the classical reconstruction cost function, we can achieve results that equal or surpass those attained by other regularized auto-encoders as well as denoising auto-encoders on a range of datasets. This penalty term corresponds to the Frobenius norm of the Jacobian matrix of the encoder activations with respect to the input. We show that this penalty term results in a localized space contraction which in turn yields robust features on the activation layer. Furthermore, we show how this penalty term is related to both regularized auto-encoders and denoising auto-encoders and how it can be seen as a link between deterministic and non-deterministic auto-encoders. We find empirically that this penalty helps to carve a representation that better captures the local directions of variation dictated by the data, corresponding to a lower-dimensional non-linear manifold, while being more invariant to the vast majority of directions orthogonal to the manifold. Finally, we show that by using the learned features to initialize an MLP, we achieve state of the art classification error on a range of datasets, surpassing other methods of pre-training."
+ },
+ {
+ "author": [
+ "Lazaro-Gredilla, Miguel",
+ "Titsias, Michalis"
+ ],
+ "paper_title": "Variational Heteroscedastic Gaussian Process Regression",
+ "booktitle": "Machine Learning Summer School",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 841,
+ "page_to": 848,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Standard Gaussian processes (GPs) model observations' noise as constant throughout input space. This is often a too restrictive assumption, but one that is needed for GP inference to be tractable. In this work we present a non-standard variational approximation that allows accurate inference in heteroscedastic GPs (i.e., under input-dependent noise conditions). Computational cost is roughly twice that of the standard GP, and also scales as O(n^3). Accuracy is verified by comparing with the golden standard MCMC and its effectiveness is illustrated on several synthetic and real datasets of diverse characteristics. An application to volatility forecasting is also considered."
+ },
+ {
+ "author": [
+ "Liu, Qiang",
+ "Ihler, Alexander"
+ ],
+ "paper_title": "Bounding the Partition Function using Holder's Inequality ",
+ "booktitle": "Simulationstechnik",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 849,
+ "page_to": 856,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We describe an algorithm for approximate inference in graphical models based on Holder's inequality that provides upper and lower bounds on common summation problems such as computing the partition function or probability of evidence in a graphical model. Our algorithm unifies and extends several existing approaches, including variable elimination techniques such as mini-bucket elimination and variational methods such as tree reweighted belief propagation and conditional entropy decomposition. We show that our method inherits benefits from each approach to provide significantly better bounds on sum-product tasks."
+ },
+ {
+ "author": [
+ "Vu, Duy",
+ "Asuncion, Arthur",
+ "Hunter, David",
+ "Smyth, Padhraic"
+ ],
+ "paper_title": "Dynamic Egocentric Models for Citation Networks",
+ "booktitle": "Aachener Symposium für Signaltheorie",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 857,
+ "page_to": 864,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:The analysis of the formation and evolution of networks over time is of fundamental importance to social science, biology, and many other fields. While longitudinal network data sets are increasingly being recorded at the granularity of individual time-stamped events, most studies only focus on collapsed cross-sectional snapshots of the network. In this paper, we introduce a dynamic egocentric framework that models continuous-time network data using multivariate counting processes. For inference, an efficient partial likelihood approach is used, allowing our methods to scale to large networks. We apply our techniques to various citation networks and demonstrate the predictive power and interpretability of the learned statistical models."
+ },
+ {
+ "author": [
+ "Small, Kevin",
+ "Wallace, Byron",
+ "Brodley, Carla",
+ "Trikalinos, Thomas"
+ ],
+ "paper_title": "The Constrained Weight Space SVM: Learning with Ranked Features ",
+ "booktitle": "Tbilisi Symposium on Logic, Language, and Computation",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 865,
+ "page_to": 872,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Applying supervised learning methods to new classification tasks requires domain experts to label sufficient training data for the classifier to achieve acceptable performance. It is desirable to mitigate this annotation effort. To this end, a pertinent observation is that instance labels are often an indirect form of supervision; it may be more efficient to impart domain knowledge directly to the model in the form of labeled features. We present a novel algorithm for exploiting such domain knowledge which we call the Constrained Weight Space SVM (CW-SVM). In addition to exploiting binary labeled features, our approach allows domain experts to provide ranked features, and, more generally, to express arbitrary expected relationships between sets of features. Our empirical results show that the CW-SVM outperforms both baseline supervised learning strategies and previously proposed methods for learning with labeled features."
+ },
+ {
+ "author": [
+ "Chen, Yudong",
+ "Xu, Huan",
+ "Caramanis, Constantine",
+ "Sanghavi, Sujay"
+ ],
+ "paper_title": "Robust Matrix Completion and Corrupted Columns ",
+ "booktitle": "Workshop Farbbildverarbeitung",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 873,
+ "page_to": 880,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:This paper considers the problem of matrix completion, when some number of the columns are arbitrarily corrupted. It is well-known that standard algorithms for matrix completion can return arbitrarily poor results, if even a single column is corrupted. What can be done if a large number, or even a constant fraction of columns are corrupted? In this paper, we study this very problem, and develop an robust and efficient algorithm for its solution. One direct application comes from robust collaborative filtering. Here, some number of users are so-called manipulators, and try to skew the predictions of the algorithm. Significantly, our results hold {\\it without any assumptions on the observed entries of the manipulated columns}."
+ },
+ {
+ "author": [
+ "Geramifard, Alborz",
+ "Doshi, Finale",
+ "Redding, Joshua",
+ "Roy, Nicholas",
+ "How, Jonathan"
+ ],
+ "paper_title": "Online Discovery of Feature Dependencies ",
+ "booktitle": "Automatic Learning and Real-Time",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 881,
+ "page_to": 888,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Online representational expansion techniques have improved the learning speed of existing reinforcement learning (RL) algorithms in low dimensional domains, yet existing online expansion methods do not scale well to high dimensional problems. We conjecture that one of the main difficulties limiting this scaling is that features defined over the full-dimensional state space often generalize poorly. Hence, we introduce incremental Feature Dependency Discovery (iFDD) as a computationally-inexpensive method for representational expansion that can be combined with any online, value-based RL method that uses binary features. Unlike other online expansion techniques, iFDD creates new features in low dimensional subspaces of the full state space where feedback errors persist. We provide convergence and computational complexity guarantees for iFDD, as well as showing empirically that iFDD scales well to high dimensional multi-agent planning domains with hundreds of millions of state-action pairs."
+ },
+ {
+ "author": [
+ "Paisley, John",
+ "Carin, Lawrence",
+ "Blei, David"
+ ],
+ "paper_title": "Variational Inference for Stick-Breaking Beta Process Priors ",
+ "booktitle": "Artificial Neural Neutworks",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 889,
+ "page_to": 896,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We present a variational Bayesian inference algorithm for the stick-breaking construction of the beta process. We derive an alternate representation of the beta process that is amenable to variational inference, and present a bound relating the truncated beta process to its infinite counterpart. We assess performance on two matrix factorization problems, using a non-negative factorization model and a linear-Gaussian model."
+ },
+ {
+ "author": [
+ "Babes, Monica",
+ "Marivate, Vukosi",
+ "Littman, Michael",
+ "Subramanian, Kaushik"
+ ],
+ "paper_title": "Apprenticeship Learning About Multiple Intentions",
+ "booktitle": "Workshop on Nonlinear Speech Processing",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 897,
+ "page_to": 904,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In this paper, we apply tools from inverse reinforcement learning (IRL) to the problem of learning from (unlabeled) demonstration trajectories of behavior generated by varying ``intentions'' or objectives. We derive an EM approach that clusters observed trajectories by inferring the objectives for each cluster using any of several possible IRL methods, and then uses the constructed clusters to quickly identify the intent of a trajectory. We show that a natural approach to IRL---a gradient ascent method that modifies reward parameters to maximize the likelihood of the observed trajectories---is successful at quickly identifying unknown reward functions. We demonstrate these ideas in the context of apprenticeship learning by acquiring the preferences of a human driver in a simple highway car simulator."
+ },
+ {
+ "author": [
+ "Sohl-Dickstein, Jascha",
+ "Battaglino, Peter",
+ "DeWeese, Michael"
+ ],
+ "paper_title": "Minimum Probability Flow Learning",
+ "booktitle": "Conference of the Gesellschaft für Klassifikation",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 905,
+ "page_to": 912,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Fitting probabilistic models to data is often difficult, due to the general intractability of the partition function and its derivatives. Here we propose a new parameter estimation technique that does not require computing an intractable normalization factor or sampling from the equilibrium distribution of the model. This is achieved by establishing dynamics that would transform the observed data distribution into the model distribution, and then setting as the objective the minimization of the KL divergence between the data distribution and the distribution produced by running the dynamics for an infinitesimal time. Score matching, minimum velocity learning, and certain forms of contrastive divergence are shown to be special cases of this learning technique. We demonstrate parameter estimation in Ising models, deep belief networks and an independent component analysis model of natural scenes. In the Ising model case, current state of the art techniques are outperformed by at least an order of magnitude in learning time, with lower error in recovered coupling parameters."
+ },
+ {
+ "author": [
+ "Doshi, Finale",
+ "Wingate, David",
+ "Tenenbaum, Josh",
+ "Roy, Nicholas"
+ ],
+ "paper_title": "Infinite Dynamic Bayesian Networks",
+ "booktitle": "Mobiles Computing in der Medizin",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 913,
+ "page_to": 920,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We present the infinite dynamic Bayesian network model (iDBN), a nonparametric, factored state-space model that generalizes dynamic Bayesian networks (DBNs). The iDBN can infer every aspect of a DBN: the number of hidden factors, the number of values each factor can take, and (arbitrarily complex) connections and conditionals between factors and observations. In this way, the iDBN generalizes other nonparametric state space models, which until now generally focused on binary hidden nodes and more restricted connection structures. We show how this new prior allows us to find interesting structure in benchmark tests and on two real-world datasets involving weather data and neural information flow networks."
+ },
+ {
+ "author": [
+ "Coates, Adam",
+ "Ng, Andrew"
+ ],
+ "paper_title": "The Importance of Encoding Versus Training with Sparse Coding and Vector Quantization ",
+ "booktitle": "Contemporary Computing in Ukraine",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 921,
+ "page_to": 928,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract: While vector quantization (VQ) has been applied widely to generate features for visual recognition problems, much recent work has focused on more powerful methods. In particular, sparse coding has emerged as a strong alternative to traditional VQ approaches and has been shown to achieve consistently higher performance on benchmark datasets. Both approaches can be split into a training phase, where the system learns a dictionary of basis functions from unlabeled data, and an encoding phase, where the dictionary is used to extract features from new inputs. In this work, we investigate the reasons for the success of sparse coding over VQ by decoupling these phases, allowing us to separate out the contributions of the training and encoding in a controlled way. Through extensive experiments on CIFAR, NORB and Caltech 101 datasets, we compare sparse coding and several other training and encoding schemes, including a form of VQ paired with a soft threshold activation function. Our results show not only that we can use fast VQ algorithms for training without penalty, but that we can just as well use randomly chosen exemplars from the training set. Rather than spend resources on training, we find it is more important to choose a good encoder---which can often be as simple as a feed forward non-linearity. Among our results, we demonstrate state-of-the-art performance on both CIFAR and NORB."
+ },
+ {
+ "author": [
+ "Cuturi, Marco"
+ ],
+ "paper_title": "Fast Global Alignment Kernels",
+ "booktitle": "Datenverarbeitung im Marketing",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 929,
+ "page_to": 936,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We propose novel approaches to cast the widely-used family of Dynamic Time Warping (DTW) distances and similarities as positive definite kernels for time series. To this effect, we provide new theoretical insights on the family of Global Alignment kernels introduced by Cuturi et al. (2007) and propose alternative kernels which are both positive definite and faster to compute. We provide experimental evidence that these alternatives are both faster and more efficient in classification tasks than other kernels based on the DTW formalism."
+ },
+ {
+ "author": [
+ "Bazzani, Loris",
+ "Freitas, Nando",
+ "Larochelle, Hugo",
+ "Murino, Vittorio",
+ "Ting, Jo-Anne"
+ ],
+ "paper_title": "Learning attentional policies for tracking and recognition in video with deep networks ",
+ "booktitle": "IEEE Transactions on Pattern Analysis and Machine Intelligence",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 937,
+ "page_to": 944,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We propose a novel attentional model for simultaneous object tracking and recognition that is driven by gaze data. Motivated by theories of the human perceptual system, the model consists of two interacting pathways: ventral and dorsal. The ventral pathway models object appearance and classification using deep (factored)-restricted Boltzmann machines. At each point in time, the observations consist of retinal images, with decaying resolution toward the periphery of the gaze. The dorsal pathway models the location, orientation, scale and speed of the attended object. The posterior distribution of these states is estimated with particle filtering. Deeper in the dorsal pathway, we encounter an attentional mechanism that learns to control gazes so as to minimize tracking uncertainty. The approach is modular (with each module easily replaceable with more sophisticated algorithms), straightforward to implement, practically efficient, and works well in simple video sequences."
+ },
+ {
+ "author": [
+ "Dauphin, Yann",
+ "Glorot, Xavier",
+ "Bengio, Yoshua"
+ ],
+ "paper_title": "Large-Scale Learning of Embeddings with Reconstruction Sampling",
+ "booktitle": "Neural Computation",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 945,
+ "page_to": 952,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In this paper, we present a novel method to speed up the learning of embeddings for large-scale learning tasks involving very sparse data, as is typically the case for Natural Language Processing tasks. Our speed-up method has been developed in the context of Denoising Auto-encoders, which are trained in a purely unsupervised way to capture the input distribution, and learn embeddings for words and text similar to earlier neural language models. The main contribution is a new method to approximate reconstruction error by a sampling procedure. We show how this approximation can be made to obtain an unbiased estimator of the training criterion, and we show how it can be leveraged to make learning much more computationally efficient. We demonstrate the effectiveness of this method on the Amazon and RCV1 NLP datasets. Instead of reducing vocabulary size to make learning practical, our method allows us to train using very large vocabularies. In particular, reconstruction sampling requires 22x less training time on the full Amazon dataset."
+ },
+ {
+ "author": [
+ "Chen, Minmin",
+ "Weinberger, Kilian",
+ "Chen, Yixin"
+ ],
+ "paper_title": "Automatic Feature Decomposition for Single View Co-training ",
+ "booktitle": "IEEE Transactions on Neural Networks",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 953,
+ "page_to": 960,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:One of the most successful semi-supervised learning approaches is co-training for multi-view data. In co-training, one trains two classifiers, one for each view, and uses the most confident predictions of the unlabeled data for the two classifiers to ``teach each other''. In this paper, we extend co-training to learning scenarios without an explicit multi-view representation. Inspired by a theoretical analysis of Balcan et. al (2004), we introduce a novel algorithm that splits the feature space during learning, explicitly to encourage co-training to be successful. We demonstrate the efficacy of our proposed method in a weakly-supervised setting on the challenging Caltech-256 object recognition task, where we improve significantly over previous results by (Bergamo & Torresani, 2010) in almost all training-set size settings."
+ },
+ {
+ "author": [
+ "Shin, Kilho",
+ "Cuturi, Marco",
+ "Kuboyama, Tetsuji"
+ ],
+ "paper_title": "Mapping kernels for trees ",
+ "booktitle": "Machine Learning",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 961,
+ "page_to": 968,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We propose a comprehensive survey of tree kernels through the lens of the mapping kernels framework. We argue that most existing tree kernels, as well as many more that are presented for the first time in this paper, fall into a typology of kernels whose seemingly intricate computation can be efficiently factorized to yield polynomial time algorithms. Despite this fact, we argue that a naive implementation of such kernels remains prohibitively expensive to compute. We propose an approach whereby some computations for smaller trees are cached, which speeds up considerably the computation of all these tree kernels. We provide experimental evidence of this fact as well as preliminary results on the performance of these kernels."
+ },
+ {
+ "author": [
+ "Machart, Pierre",
+ "Peel, Thomas",
+ "Anthoine, Sandrine",
+ "Ralaivola, Liva",
+ "Glotin, Herv\\'{e}"
+ ],
+ "paper_title": "Stochastic Low-Rank Kernel Learning for Regression ",
+ "booktitle": "Pattern Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 969,
+ "page_to": 976,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We present a novel approach to learn a kernel-based regression function. It is based on the use of conical combinations of data-based parameterized kernels and on a new stochastic convex optimization procedure of which we establish convergence guarantees. The overall learning procedure has the nice properties that a) the learned conical combination is automatically designed to perform the regression task at hand and b) the updates implicated by the optimization procedure are quite inexpensive. In order to shed light on the appositeness of our learning strategy, we present empirical results from experiments conducted on various benchmark datasets."
+ },
+ {
+ "author": [
+ "Nagano, Kiyohito",
+ "Kawahara, Yoshinobu",
+ "Aihara, Kazuyuki"
+ ],
+ "paper_title": "Size-constrained Submodular Minimization through Minimum Norm Base",
+ "booktitle": "Journal of Machine Learning Research",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 977,
+ "page_to": 984,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:A number of combinatorial optimization problems in machine learning can be described as the problem of minimizing a submodular function. It is known that the unconstrained submodular minimization problem can be solved in strongly polynomial time. However, additional constraints make the problem intractable in many settings. In this paper, we discuss the submodular minimization under a size constraint, which is NP-hard, and generalizes the densest subgraph problem and the uniform graph partitioning problem. Because of NP-hardness, it is difficult to compute an optimal solution even for a prescribed size constraint. In our approach, we do not give approximation algorithms. Instead, the proposed algorithm computes optimal solutions for some of possible size constraints in polynomial time. Our algorithm utilizes the basic polyhedral theory associated with submodular functions. Additionally, we evaluate the performance of the proposed algorithm through computational experiments."
+ },
+ {
+ "author": [
+ "Ladicky, Lubor",
+ "Torr, Philip"
+ ],
+ "paper_title": "Locally Linear Support Vector Machines ",
+ "booktitle": "Pattern Recognition Letters",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 985,
+ "page_to": 992,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Linear support vector machines ({\\sc svm}s) have become popular for solving classification tasks due to their fast and simple online application to large scale data sets. However, many problems are not linearly separable. For these problems kernel-based {\\sc svm}s are often used, but unlike their linear variant they suffer from various drawbacks in terms of computational and memory efficiency. Their response can be represented only as a function of the set of support vectors, which has been experimentally shown to grow linearly with the size of the training set. In this paper we propose a novel locally linear {\\sc svm} classifier with smooth decision boundary and bounded curvature. We show how the functions defining the classifier can be approximated using local codings and show how this model can be optimized in an online fashion by performing stochastic gradient descent with the same convergence guarantees as standard gradient descent method for linear {\\sc svm}. Our method achieves comparable performance to the state-of-the-art whilst being significantly faster than competing kernel {\\sc svm}s. We generalise this model to locally finite dimensional kernel {\\sc svm}."
+ },
+ {
+ "author": [
+ "Kadri, Hachem",
+ "Rabaoui, Asma",
+ "Preux, Philippe",
+ "Duflos, Emmanuel",
+ "Rakotomamonjy, Alain"
+ ],
+ "paper_title": "Functional Regularized Least Squares Classication with Operator-valued Kernels ",
+ "booktitle": "The Journal of Artificial Societies and Social Simulation",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 993,
+ "page_to": 1000,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Although operator-valued kernels have recently received increasing interest in various machine learning and functional data analysis problems such as multi-task learning or functional regression, little attention has been paid to the understanding of their associated feature spaces. In this paper, we explore the potential of adopting an operator-valued kernel feature space perspective for the analysis of functional data. We then extend the Regularized Least Squares Classification (RLSC) algorithm to cover situations where there are multiple functions per observation. Experiments on a sound recognition problem show that the proposed method outperforms the classical RLSC algorithm."
+ },
+ {
+ "author": [
+ "Jalali, Ali",
+ "Chen, Yudong",
+ "Sanghavi, Sujay",
+ "Xu, Huan"
+ ],
+ "paper_title": "Clustering Partially Observed Graphs via Convex Optimization ",
+ "booktitle": "International Journal of Pattern Recognition and Artificial Intelligence",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1001,
+ "page_to": 1008,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:This paper considers the problem of clustering a partially observed unweighted graph -- i.e. one where for some node pairs we know there is an edge between them, for some others we know there is no edge, and for the remaining we do not know whether or not there is an edge. We want to organize the nodes into disjoint clusters so that there is relatively dense (observed) connectivity within clusters, and sparse across clusters. We take a novel yet natural approach to this problem, by focusing on finding the clustering that minimizes the number of \"disagreements\" - i.e. the sum of the number of (observed) missing edges within clusters, and (observed) present edges across clusters. Our algorithm uses convex optimization; its basis is a reduction of disagreement minimization to the problem of recovering an (unknown) low-rank matrix and an (unknown) sparse matrix from their partially observed sum. We show that our algorithm succeeds under certain natural assumptions on the optimal clustering and its disagreements. Our results significantly strengthen existing matrix splitting results for the special case of our clustering problem. Our results directly enhance solutions to the problem of Correlation Clustering with partial observations"
+ },
+ {
+ "author": [
+ "Yang, Eunho",
+ "Ravikumar, Pradeep"
+ ],
+ "paper_title": "On the Use of Variational Inference for Learning Discrete Graphical Model",
+ "booktitle": "Information Research",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1009,
+ "page_to": 1016,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We study the general class of estimators for graphical model structure based on optimizing $\\ell_1$-regularized approximate log-likelihood, where the approximate likelihood uses tractable variational approximations of the partition function. We provide a message-passing algorithm that \\emph{directly} computes the $\\ell_1$ regularized approximate MLE. Further, in the case of certain reweighted entropy approximations to the partition function, we show that surprisingly the $\\ell_1$ regularized approximate MLE estimator has a \\emph{closed-form}, so that we would no longer need to run through many iterations of approximate inference and message-passing. Lastly, we analyze this general class of estimators for graph structure recovery, or its \\emph{sparsistency}, and show that it is indeed sparsistent under certain conditions."
+ },
+ {
+ "author": [
+ "Sutskever, Ilya",
+ "Martens, James",
+ "Hinton, Geoffrey"
+ ],
+ "paper_title": "Generating Text with Recurrent Neural Networks ",
+ "booktitle": "Advanced Robotics",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1017,
+ "page_to": 1024,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Recurrent Neural Networks (RNNs) are very powerful sequence models that do not enjoy widespread use because it is extremely difficult to train them properly. Fortunately, recent advances in Hessian-free optimization have been able to overcome the difficulties associated with training RNNs, making it possible to apply them successfully to challenging sequence problems. In this paper we demonstrate the power of RNNs trained with the new Hessian-Free optimizer (HF) by applying them to character-level language modeling tasks. The standard RNN architecture, while effective, is not ideally suited for such tasks, so we introduce a new RNN variant that uses multiplicative (or ``gated'') connections which allow the current input character to determine the transition matrix from one hidden state vector to the next. After training the multiplicative RNN with the HF optimizer for five days on 8 high-end Graphics Processing Units, we were able to surpass the performance of the best previous single method for character-level language modeling -- a hierarchical non-parametric sequence model. To our knowledge this represents the largest recurrent neural network application to date."
+ },
+ {
+ "author": [
+ "Agovic, Amrudin",
+ "Banerjee, Arindam",
+ "Chatterje, Snigdhansu"
+ ],
+ "paper_title": "Probabilistic Matrix Addition",
+ "booktitle": "Information Systems Frontiers",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1025,
+ "page_to": 1032,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We introduce Probabilistic Matrix Addition (PMA) for modeling real-valued data matrices by simultaneously capturing covariance structure among rows and among columns. PMA additively combines two latent matrices drawn from two Gaussian Processes respectively over rows and columns. The resulting joint distribution over the observed matrix does not factorize over entries, rows, or columns, and can thus capture intricate dependencies in the matrix. Exact inference in PMA is possible, but involves inversion of large matrices, and can be computationally prohibitive. Efficient approximate inference is possible due to the sparse dependency structure among latent variables. We propose two families of approximate inference algorithms for PMA based on Gibbs sampling and MAP inference. We demonstrate the effectiveness of PMA for missing value prediction and multi-label classification problems."
+ },
+ {
+ "author": [
+ "Martens, James",
+ "Sutskever, Ilya"
+ ],
+ "paper_title": "Learning Recurrent Neural Networks with Hessian-Free Optimization ",
+ "booktitle": "Pattern Analysis and Applications",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1033,
+ "page_to": 1040,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract: In this work we resolve the long-outstanding problem of how to effectively train recurrent neural networks (RNNs) on complex and difficult sequence modeling problems which may contain long-term data dependencies. Utilizing recent advances in the Hessian-free optimization approach \\citep{hf}, together with a novel damping scheme, we successfully train RNNs on two sets of challenging problems. First, a collection of pathological synthetic datasets which are known to be impossible for standard optimization approaches (due to their extremely long-term dependencies), and second, on three natural and highly complex real-world sequence datasets where we find that our method significantly outperforms the previous state-of-the-art method for training neural sequence models: the Long Short-term Memory approach of \\citet{lstm}. Additionally, we offer a new interpretation of the generalized Gauss-Newton matrix of \\citet{schraudolph} which is used within the HF approach of Martens."
+ },
+ {
+ "author": [
+ "Eisenstein, Jacob",
+ "Ahmed, Amr",
+ "Xing, Eric"
+ ],
+ "paper_title": "Sparse Additive Generative Models of Text ",
+ "booktitle": "International Journal on Document Analysis and Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1041,
+ "page_to": 1048,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Generative models of text typically associate a multinomial with every class label or topic. Even in simple models this requires the estimation of thousands of parameters; in multifaceted latent variable models, standard approaches require additional latent ``switching'' variables for every token, complicating inference. In this paper, we propose an alternative generative model for text. The central idea is that each class label or latent topic is endowed with a model of the deviation in log-frequency from a constant background distribution. This approach has two key advantages: we can enforce sparsity to prevent overfitting, and we can combine generative facets through simple addition in log space, avoiding the need for latent switching variables. We demonstrate the applicability of this idea to a range of scenarios: classification, topic modeling, and more complex multifaceted generative models."
+ },
+ {
+ "author": [
+ "Gabillon, Victor",
+ "Lazaric, Alessandro",
+ "Ghavamzadeh, Mohammad",
+ "Scherrer, Bruno"
+ ],
+ "paper_title": "Classification-based Policy Iteration with a Critic",
+ "booktitle": "Neural Computing and Applications",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1049,
+ "page_to": 1056,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In this paper, we study the effect of adding a value function approximation component (critic) to rollout classification-based policy iteration (RCPI) algorithms. The idea is to use a critic to approximate the return after we truncate the rollout trajectories. This allows us to control the bias and variance of the rollout estimates of the action-value function. Therefore, the introduction of a critic can improve the accuracy of the rollout estimates, and as a result, enhance the performance of the RCPI algorithm. We present a new RCPI algorithm, called direct policy iteration with critic (DPI-Critic), and provide its finite-sample analysis when the critic is based on the LSTD method. We empirically evaluate the performance of DPI-Critic and compare it with DPI and LSPI in two benchmark reinforcement learning problems."
+ },
+ {
+ "author": [
+ "Das, Abhimanyu",
+ "Kempe, David"
+ ],
+ "paper_title": "Submodular meets Spectral: Greedy Algorithms for Subset Selection, Sparse Approximation and Dictionary Selection ",
+ "booktitle": "European Journal of Information Systems",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1057,
+ "page_to": 1064,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We study the problem of selecting a subset of $k$ random variables from a large set, in order to obtain the best linear prediction of another variable of interest. This problem can be viewed in the context of both feature selection and sparse approximation. We analyze the performance of widely used greedy heuristics, using insights from the maximization of submodular functions and spectral analysis. We introduce the submodularity ratio as a key quantity to help understand why greedy algorithms perform well even when the variables are highly correlated. Using our techniques, we obtain the strongest known approximation guarantees for this problem, both in terms of the submodularity ratio and the smallest $k$-sparse eigenvalue of the covariance matrix. We also analyze greedy algorithms for the dictionary selection problem, and significantly improve the previously known guarantees. Our theoretical analysis is complemented by experiments on real-world and synthetic data sets; the experiments show that the submodular ratio is a stronger predictor of the performance of greedy algorithms than other spectral parameters."
+ },
+ {
+ "author": [
+ "Parikh, Ankur",
+ "Song, Le",
+ "Xing, Eric"
+ ],
+ "paper_title": "A Spectral Algorithm for Latent Tree Graphical Models",
+ "booktitle": "Internet Mathematics",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1065,
+ "page_to": 1072,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Latent variable models are powerful tools for probabilistic modeling, and have been successfully applied to various domains, such as speech analysis and bioinformatics. However, parameter learning algorithms for latent variable models have predominantly relied on local search heuristics such as expectation maximization (EM). We propose a fast, local-minimum-free spectral algorithm for learning latent variable models with arbitrary tree topologies, and show that the joint distribution of the observed variables can be reconstructed from the marginals of triples of observed variables irrespective of the maximum degree of the tree. We demonstrate the performance of our spectral algorithm on synthetic and real datasets; for large training sizes, our algorithm performs comparable to or better than EM while being orders of magnitude faster."
+ },
+ {
+ "author": [
+ "Guan, Yue",
+ "Dy, Jennifer",
+ "Jordan, Michael"
+ ],
+ "paper_title": "A Unified Probabilistic Model for Global and Local Unsupervised Feature Selection",
+ "booktitle": "Transactions on Rough Sets",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1073,
+ "page_to": 1080,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Existing algorithms for joint clustering and feature selection can be categorized as either global or local approaches. Global methods select a single cluster-independent subset of features, whereas local methods select cluster-specific subsets of features. In this paper, we present a unified probabilistic model that can perform both global and local feature selection for clustering. Our approach is based on a hierarchical beta-Bernoulli prior combined with a Dirichlet process mixture model. We obtain global or local feature selection by adjusting the variance of the beta prior. We provide a variational inference algorithm for our model. In addition to simultaneously learning the clusters and features, this Bayesian formulation allows us to learn both the number of clusters and the number of features to retain. Experiments on synthetic and real data show that our unified model can find global and local features and cluster data as well as competing methods of each type."
+ },
+ {
+ "author": [
+ "Li, Yu-Feng",
+ "Zhou, Zhi-Hua"
+ ],
+ "paper_title": "Towards Making Unlabeled Data Never Hurt ",
+ "booktitle": "IMPACT Impact of Computing in Science and Engineering",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1081,
+ "page_to": 1088,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:It is usually expected that, when labeled data are limited, the learning performance can be improved by exploiting unlabeled data. In many cases, however, the performances of current semi-supervised learning approaches may be even worse than purely using the limited labeled data.It is desired to have \\textit{safe} semi-supervised learning approaches which never degenerate learning performance by using unlabeled data. In this paper, we focus on semi-supervised support vector machines (S3VMs) and propose S4VMs, i.e., safe S3VMs. Unlike S3VMs which typically aim at approaching an optimal low-density separator, S4VMs try to exploit the candidate low-density separators simultaneously to reduce the risk of identifying a poor separator with unlabeled data. We describe two implementations of S4VMs, and our comprehensive experiments show that the overall performance of S4VMs are highly competitive to S3VMs, while in contrast to S3VMs which degenerate performance in many cases, S4VMs are never significantly inferior to inductive SVMs."
+ },
+ {
+ "author": [
+ "Saxe, Andrew",
+ "Koh, Pang Wei",
+ "Chen, Zhenghao",
+ "Bhand, Maneesh",
+ "Suresh, Bipin",
+ "Ng, Andrew"
+ ],
+ "paper_title": "On Random Weights and Unsupervised Feature Learning ",
+ "booktitle": "Cognition, Technology & Work",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1089,
+ "page_to": 1096,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Recently two anomalous results in the literature have shown that certain feature learning architectures can yield useful features for object recognition tasks even with untrained, random weights. In this paper we pose the question: why do random weights sometimes do so well? Our answer is that certain convolutional pooling architectures can be inherently frequency selective and translation invariant, even with random weights. Based on this we demonstrate the viability of extremely fast architecture search by u"
+ },
+ {
+ "author": [
+ "Dudik, Miroslav",
+ "Langford, John",
+ "Li, Lihong"
+ ],
+ "paper_title": "Doubly Robust Policy Evaluation and Learning ",
+ "booktitle": "International Journal of Information Technology and Decision Making",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1097,
+ "page_to": 1104,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract: We study decision making in environments where the reward is only partially observed, but can be modeled as a function of an action and an observed context. This setting, known as contextual bandits, encompasses a wide variety of applications including health-care policy and Internet advertising. A central task is evaluation of a new policy given historic data consisting of contexts, actions and received rewards. The key challenge is that the past data typically does not faithfully represent proportions of actions taken by a new policy. Previous approaches rely either on models of rewards or models of the past policy. The former are plagued by a large bias whereas the latter have a large variance. In this work, we leverage the strength and overcome the weaknesses of the two approaches by applying the \\emph{doubly robust} technique to the problems of policy evaluation and optimization. We prove that this approach yields accurate value estimates when we have \\emph{either} a good (but not necessarily consistent) model of rewards \\emph{or} a good (but not necessarily consistent) model of past policy. Extensive empirical comparison demonstrates that the doubly robust approach uniformly improves over existing techniques, achieving both lower variance in value estimation and better policies. As such, we expect the doubly robust approach to become common practice."
+ },
+ {
+ "author": [
+ "Ngiam, Jiquan",
+ "Chen, Zhenghao",
+ "Koh, Pang Wei",
+ "Ng, Andrew"
+ ],
+ "paper_title": "Learning Deep Energy Models",
+ "booktitle": "International Journal of Knowledge and Learning",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1105,
+ "page_to": 1112,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Deep generative models with multiple hidden layers have been shown to be able to learn meaningful and compact representations of data. In this work we propose deep energy models, a class of models that use a deep feedforward neural network to model the energy landscape that defines a probabilistic model. We are able to efficiently train all layers of our model at the same time, allowing the lower layers of the model to adapt to the training of the higher layers, producing better generative models. We evaluate the generative performance of our models on natural images and demonstrate that joint training of multiple layers yields qualitative and quantitative improvements over greedy layerwise training. We further generalize our models beyond the commonly used sigmoidal neural networks and show how a deep extension of the product of Student-t distributions model achieves good generative performance. Finally, we introduce a discriminative extension of our model and demonstrate that it outperforms other fully-connected models on object recognition on the NORB dataset."
+ },
+ {
+ "author": [
+ "Kotlowski, Wojciech",
+ "Dembczynski, Krzysztof",
+ "Huellermeier, Eyke"
+ ],
+ "paper_title": "Bipartite Ranking through Minimization of Univariate Loss",
+ "booktitle": "International Journal of Web and Grid Services",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1113,
+ "page_to": 1120,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Minimization of the rank loss or, equivalently, maximization of the AUC in bipartite ranking calls for minimizing the number of disagreements between pairs of instances. Since the complexity of this problem is inherently quadratic in the number of training examples, it is tempting to ask how much is actually lost by minimizing a simple univariate loss function, as done by standard classification methods, as a surrogate. In this paper, we first note that minimization of 0/1 loss is not an option, as it may yield an arbitrarily high rank loss. We show, however, that better results can be achieved by means of a weighted (cost-sensitive) version of 0/1 loss. Yet, the real gain is obtained through margin-based loss functions, for which we are able to derive proper bounds, not only for rank risk but, more importantly, also for rank regret. The paper is completed with an experimental study in which we address specific questions raised by our theoretical analysis."
+ },
+ {
+ "author": [
+ "Lee, Sangkyun",
+ "Wright, Stephen"
+ ],
+ "paper_title": "Manifold Identification of Dual Averaging Methods for Regularized Stochastic Online Learning",
+ "booktitle": "Robotica",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1121,
+ "page_to": 1128,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Iterative methods that take steps in approximate subgradient directions have proved to be useful for stochastic learning problems over large or streaming data sets. When the objective consists of a loss function plus a nonsmooth regularization term, whose purpose is to induce structure (for example, sparsity) in the solution, the solution often lies on a low-dimensional manifold along which the regularizer is smooth. This paper shows that a regularized dual averaging algorithm can identify this manifold with high probability. This observation motivates an algorithmic strategy in which, once a near-optimal manifold is identified, we switch to an algorithm that searches only in this manifold, which typically has much lower intrinsic dimension than the full space, thus converging quickly to a near-optimal point with the desired structure. Computational results are presented to illustrate these claims."
+ },
+ {
+ "author": [
+ "Agarwal, Alekh",
+ "Negahban, Sahand",
+ "Wainwright, Martin"
+ ],
+ "paper_title": "Noisy matrix decomposition via convex relaxation: Optimal rates in high dimensions ",
+ "booktitle": "Machine Intelligence and Pattern Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1129,
+ "page_to": 1136,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We analyze a class of estimators based on a convex relaxation for solving high-dimensional matrix decomposition problems. The observations are the noisy realizations of the sum of an (approximately) low rank matrix $\\Theta^\\star$ with a second matrix $\\Gamma^\\star$ endowed with a complementary form of low-dimensional structure. We derive a general theorem that gives upper bounds on the Frobenius norm error for an estimate of the pair $(\\Theta^\\star, \\Gamma^\\star)$ obtained by solving a convex optimization problem. We then specialize our general result to two cases that have been studied in the context of robust PCA: low rank plus sparse structure, and low rank plus a column sparse structure. Our theory yields Frobenius norm error bounds for both deterministic and stochastic noise matrices, and in the latter case, they are minimax optimal. The sharpness of our theoretical predictions is also confirmed in numerical simulations."
+ },
+ {
+ "author": [
+ "Vainsencher, Daniel",
+ "Dekel, Ofer",
+ "Mannor, Shie"
+ ],
+ "paper_title": "Bundle Selling by Online Estimation of Valuation Functions",
+ "booktitle": "IEEE Transactions on Aerospace and Navigational Electronics",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1137,
+ "page_to": 1144,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We consider the problem of online selection of a bundle of items when the cost of each item changes arbitrarily from round to round and the valuation function is initially unknown and revealed only through the noisy values of selected bundles (the bandit feedback setting). We are interested in learning schemes that have a small regret compared to an agent who knows the true valuation function. Since there are exponentially many bundles, further assumptions on the valuation functions are needed. We make the assumption that the valuation function is supermodular and has non-linear interactions that are of low degree in a novel sense. We develop efficient learning algorithms that balance exploration and exploitation to achieve low regret in this setting."
+ },
+ {
+ "author": [
+ "Courville, Aarron",
+ "Bergstra, James",
+ "Bengio, Yoshua"
+ ],
+ "paper_title": "Unsupervised Models of Images by Spike-and-Slab RBMs",
+ "booktitle": "Transactions on Machine Learning and Data Mining",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1145,
+ "page_to": 1152,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:The spike and slab Restricted Boltzmann Machine (RBM) is defined by having both a real valued ``slab'' variable and a binary ``spike'' variable associated with each unit in the hidden layer. In this paper we generalize and extend the spike and slab RBM to include non-zero means of the conditional distribution over the observed variables conditional on the binary spike variables. We also introduce a term, quadratic in the observed data that we exploit to guarantee the all conditionals associated with the model are well defined -- a guarantee that was absent in the original spike and slab RBM. The inclusion of these generalizations improves the performance of the spike and slab RBM as a feature learner and achieves competitive performance on the CIFAR-10 image classification task. The spike and slab model, when trained in a convolutional configuration, can generate sensible samples that demonstrate that the model has capture the broad statistical structure of natural images."
+ },
+ {
+ "author": [
+ "Kamisetty, Hetunandan",
+ "Xing, Eric",
+ "Langmead, Christopher"
+ ],
+ "paper_title": "Approximating Correlated Equilibria using Relaxations on the Marginal Polytope",
+ "booktitle": "Neural Information Processing Systems",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1153,
+ "page_to": 1160,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In game theory, a Correlated Equilibrium (CE) is an equilibrium concept that generalizes the more well-known Nash Equilibrium. If the game is represented as a graphical game, the computational complexity of computing an optimum CE is exponential in the tree-width of the graph. In settings where this exact computation is not feasible, it is desirable to approximate the properties of the CE, such as its expected social utility and marginal probabilities. We study outer relaxations of this problem that yield approximate marginal strategies for the players under a variety of utility functions. Results on simulated games and in a real problem involving drug design indicate that our approximations can be highly accurate and can be successfully used when exact computation of CE is infeasible."
+ },
+ {
+ "author": [
+ "Yan, Yan",
+ "Rosales, Romer",
+ "Fung, Glenn",
+ "Dy, Jennifer"
+ ],
+ "paper_title": "Active Learning from Crowds ",
+ "booktitle": "International Conference on Machine Learning",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1161,
+ "page_to": 1168,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Obtaining labels is expensive or time-consuming, but unlabeled data is often abundant and easy to obtain. Many learning task can profit from intelligently choosing unlabeled instances to be labeled by an oracle also known as active learning, instead of simply labeling all the data or randomly selecting data to be labeled. Supervised learning traditionally relies on an oracle playing the role of a teacher. In the multiple annotator paradigm, an oracle, who knows the ground truth, no longer exists; instead, multiple labelers, with varying expertise, are available for querying. This paradigm posits new challenges to the active learning scenario. We can ask which data sample should be labeled next and which annotator should we query to benefit our learning model the most. In this paper, we develop a probabilistic model for learning from multiple annotators that can also learn the annotator expertise even when their expertise may not be consistently accurate (or inaccurate) across the task domain. In addition, we provide an optimization formulation that allows us to simultaneously learn the most uncertain sample and the annotator/s to query the labels from for active learning. Our active learning approach combines both intelligently selecting samples to label and learning from expertise among multiple labelers to improve learning performance."
+ },
+ {
+ "author": [
+ "Waugh, Kevin",
+ "Ziebart, Brian",
+ "Bagnell, Drew"
+ ],
+ "paper_title": "Computational Rationalization: The Inverse Equilibrium Problem",
+ "booktitle": "Uncertainty in Artificial Intelligence",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1169,
+ "page_to": 1176,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Modeling the purposeful behavior of imperfect agents from a small number of observations is a challenging task. When restricted to the single-agent decision-theoretic setting, inverse optimal control techniques assume that observed behavior is an approximately optimal solution to an unknown decision problem. These techniques learn a utility function that explains the example behavior and can then be used to accurately predict or imitate future behavior in similar observed or unobserved situations. In this work, we consider similar tasks in competitive and cooperative multi-agent domains. Here, unlike single-agent settings, a player cannot myopically maximize its reward --- it must speculate on how the other agents may act to influence the game's outcome. Employing the game-theoretic notion of regret and the principle of maximum entropy, we introduce a technique for predicting and generalizing behavior, as well as recovering a reward function in these domains."
+ },
+ {
+ "author": [
+ "Ghavamzadeh, Mohammad",
+ "Lazaric, Alessandro",
+ "Munos, Remi",
+ "Hoffman, Matthew"
+ ],
+ "paper_title": "Finite-Sample Analysis of Lasso-TD ",
+ "booktitle": "International Conference on Intelligent RObots and IROS",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1177,
+ "page_to": 1184,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:In this paper, we analyze the performance of Lasso-TD, a modification of LSTD in which the projection operator is defined as a Lasso problem. We first show that Lasso-TD is guaranteed to have a unique fixed point and its algorithmic implementation coincides with the recently presented LARS-TD and LC-TD methods. We then derive two bounds on the prediction error of Lasso-TD in the Markov design setting, i.e., when the performance is evaluated on the same states used by the method. The first bound makes no assumption, but has a slow rate w.r.t. the number of samples. The second bound is under an assumption on the empirical Gram matrix, called the compatibility condition, but has an improved rate and directly relates the prediction error to the sparsity of the value function in the feature space at hand."
+ },
+ {
+ "author": [
+ "Pazis, Jason",
+ "Parr, Ron"
+ ],
+ "paper_title": "Generalized Value Functions for Large Action Sets",
+ "booktitle": "International Conference on Pattern Recognition",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1185,
+ "page_to": 1192,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:The majority of value function approximation based reinforcement learning algorithms available today, focus on approximating the state (V) or state-action (Q) value function and efficient action selection comes as an afterthought. On the other hand, real-world problems tend to have large action spaces, where evaluating every possible action becomes impractical. This mismatch presents a major obstacle in successfully applying reinforcement learning to real-world problems. In this paper we present a unified view of V and Q functions and arrive at a new space-efficient representation, where action selection can be done exponentially faster, without the use of a model. We then describe how to calculate this new value function efficiently via approximate linear programming and provide experimental results that demonstrate the effectiveness of the proposed approach."
+ },
+ {
+ "author": [
+ "Kulesza, Alex",
+ "Taskar, Ben"
+ ],
+ "paper_title": "k-DPPs: Fixed-Size Determinantal Point Processes ",
+ "booktitle": "International Symposium on Neural Networks",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1193,
+ "page_to": 1200,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:We consider estimation methods for the class of continuous-data energy based models (EBMs). Our main result shows that estimating the parameters of an EBM using score matching when the conditional distribution over the visible units is Gaussian corresponds to training a particular form of regularized autoencoder. We show how different Gaussian EBMs lead to different autoencoder architectures, providing deep links between these two families of models. We compare the score matching estimator for the mPoT model, a particular Gaussian EBM, to several other training methods on a variety of tasks including image denoising and unsupervised feature extraction. We show that the regularization function induced by score matching leads to superior classification performance relative to a standard autoencoder. We also show that score matching yields classification results that are indistinguishable from better-known stochastic approximation maximum likelihood estimators."
+ },
+ {
+ "author": [
+ "Swersky, Kevin",
+ "Ranzato, Marc'Aurelio",
+ "Buchman, David",
+ "Marlin, Benjamin",
+ "Freitas, Nando"
+ ],
+ "paper_title": "On Autoencoders and Score Matching for Energy Based Models",
+ "booktitle": "Computational Learning Theory",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1201,
+ "page_to": 1208,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Boosting is a popular way to derive powerful learners from simpler hypothesis classes. Following previous work (Mason et al., 1999; Friedman, 2000) on general boosting frameworks, we analyze gradient-based descent algorithms for boosting with respect to any convex objective and introduce a new measure of weak learner performance into this setting which generalizes existing work. We present the first weak to strong learning guarantees for the existing gradient boosting work for smooth convex objectives, and also demonstrate that this work fails for non-smooth objectives. To address this issue, we present new algorithms which extend this boosting approach to arbitrary convex loss functions and give corresponding weak to strong convergence results. In addition, we demonstrate experimental results that support our analysis and demonstrate the need for the new algorithms we present."
+ },
+ {
+ "author": [
+ "Grubb, Alexander",
+ "Bagnell, Drew"
+ ],
+ "paper_title": "Generalized Boosting Algorithms for Convex Optimization",
+ "booktitle": "The European Conference on Machine Learning and Principles and Practice of Knowledge Discovery in Databases",
+ "year": "2011",
+ "isbn": "978-1-4503-0619-5",
+ "page_form": 1209,
+ "page_to": 1216,
+ "totle_page": 8,
+ "language": "en",
+ "abstract": "Abstract:Determinantal point processes (DPPs) have recently been proposed as models for set selection problems where diversity is preferred. For example, they can be used to select diverse sets of sentences to form document summaries, or to find multiple non-overlapping human poses in an image. However, DPPs conflate the modeling of two distinct characteristics: the size of the set, and its content. For many realistic tasks, the size of the desired set is known up front; e.g., in search we may want to show the user exactly ten results. In these situations the effort spent by DPPs modeling set size is not only wasteful, but actually introduces unwanted bias into the modeling of content. Instead, we propose t"
+ }
+]
diff --git a/db/seeds.rb b/db/seeds.rb
index b53fb7b7..9c90554c 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -1,34 +1,104 @@
require 'factory_girl'
+require 'faker'
+require 'json'
+
+CoAuthor.destroy_all
+CoAuthorRelation.destroy_all
+WritingJournal.destroy_all
+
+data = File.read("db/data")
+data_json = JSON.parse(data)
+
+name_tw = Array.new 51,""
+name_tw = name_tw.map do |p| Faker::Name::name end
+name_en = Array.new 51,""
+name_en = name_en.map do |p| Faker::Name::name end
+
+email = Array.new 51,""
+email= email.map do |p| Faker::Internet.email end
+
+type = ["friend0", "teacher0", "student0", "mate0", "relation0", "friend1", "teacher1", "student1", "mate1", "relation1"]
FactoryGirl.define do
- factory :paper_record, class: "WritingJournal" do |f|
- f.sequence(:paper_title_translations) {|n|{zh_tw: "tw_test #{n}", en: "en_test #{n}" }}
- f.sequence(:journal_title_translations) {|n| {zh_tw: "tw_test #{n}", en: "en_test #{n}"}}
- f.sequence(:keywords) {|n| "keywords #{n}"}
- f.sequence(:abstract) {|n| "abstract #{n}"}
- f.sequence(:isbn) {|n| "0714312#{n}#{n}#{n}"}
- f.sequence(:year) {|n| "201#{n}"}
- f.create_user_id BSON::ObjectId('4f45f3b9e9d02c5db9000067') #user_id, this is Chris' account
- f.update_user_id BSON::ObjectId('4f45f3b9e9d02c5db9000067') #user_id, this is Chris' account
+ factory(:type, class: "CoAuthorRelation") do |f|
+ f.sequence(:relation_translations) do |n|
+ { zh_tw: "#{type[n%type.size]}",
+ en: "#{type[n%type.size]}" }
+ end
end
- factory :custom_record, class: "WritingJournal" do |f|
- f.sequence(:paper_title_translations) {|n|{zh_tw: "tw_test #{n}", en: "en_test #{n}" }}
- f.sequence(:keywords) {|n| "keywords #{n}"}
- f.sequence(:abstract) {|n| "abstract #{n}"}
- f.sequence(:isbn) {|n| "0714312#{n}#{n}#{n}"}
- f.sequence(:year) {|n| "201#{n}"}
+ factory(:co_author_candidate, class: "CoAuthor") do |f|
+
+ f.sequence(:co_author_translations) do |n|
+ { zh_tw: "#{name_tw[n]}",
+ en: "#{name_en[n]}" }
+ end
+ f.sequence(:type) do |n| "#{type[n%5]}" end
+ f.sequence(:email) do |n| "#{email[n]}" end
+ f.name_id BSON::ObjectId('4f45f3b9e9d02c5db9000067') #user_id, this is Chris' account
+ end
+
+ factory :paper_record, class: "WritingJournal" do |f|
+ f.sequence(:paper_title_translations) do |n|
+ { zh_tw: "tw_#{data_json[n]["paper_title"]}",
+ en: "en_#{data_json[n]["paper_title"]}" }
+ end
+
+ f.sequence(:journal_title_translations) do |n|
+ {zh_tw: "tw_#{data_json[n]["booktitle"]}",
+ en: "en_#{data_json[n]["booktitle"]}"}
+ end
+
+ f.sequence(:abstract) do |n|
+ "#{data_json[n]["abstract"]}"
+ end
+
+ f.sequence(:isbn) do |n|
+ "#{data_json[n]["isbn"]}"
+ end
+
+ f.sequence(:year) do |n|
+ "#{data_json[n]["year"]}"
+ end
+
+ f.sequence(:authors) do |n|
+ "#{data_json[n]["author"].map{|m| m.split(",").reverse.join(" ")}.join(",")}"
+ end
+
+ f.sequence(:form_to_start) do |n|
+ "#{data_json[n]["page_from"]}"
+ end
+
+ f.sequence(:form_to_end) do |n|
+ "#{data_json[n]["page_to"]}"
+ end
+
+ f.sequence(:total_pages) do |n|
+ "#{data_json[n]["total_page"]}"
+ end
+
+ f.sequence(:language) do |n|
+ "#{data_json[n]["language"]}"
+ end
+
+ f.sequence(:keywords) do |n|
+ "#{data_json[n]["abstract"].split[-3..-1].join(",")}"
+ end
+
f.create_user_id BSON::ObjectId('4f45f3b9e9d02c5db9000067') #user_id, this is Chris' account
f.update_user_id BSON::ObjectId('4f45f3b9e9d02c5db9000067') #user_id, this is Chris' account
end
end
+10.times.each do
+ FactoryGirl.create(:type)
+end
-#product 50 records
-#
50.times.each do
FactoryGirl.create(:paper_record)
end
-FactoryGirl.create(:custom_record, journal_title_translations: {zh_tw: "tw_test A", en: "en_test A"})
-FactoryGirl.create(:custom_record, journal_title_translations: {zh_tw: "tw_test B", en: "en_test B"})
+50.times.each do
+ FactoryGirl.create(:co_author_candidate)
+end
+
diff --git a/lib/parsers/parser_layout.rb b/lib/parsers/parser_layout.rb
index 817bf327..d3f6fb72 100644
--- a/lib/parsers/parser_layout.rb
+++ b/lib/parsers/parser_layout.rb
@@ -5,7 +5,7 @@ module ParserLayout
body = Nokogiri::HTML(layout.body)
body.css('.page_content').each do |content|
- layout.layout_parts.build(:name => content['name'])
+ layout.layout_parts.build(:name => content['name']) unless layout.layout_parts.detect{|layout_part| layout_part.name.eql?(content['name'])}
end
body.css('.page_menu').each do |menu|
diff --git a/spec/controllers/desktop/co_author_relations_controller_spec.rb b/spec/controllers/desktop/co_author_relations_controller_spec.rb
new file mode 100644
index 00000000..ee7b9cfb
--- /dev/null
+++ b/spec/controllers/desktop/co_author_relations_controller_spec.rb
@@ -0,0 +1,164 @@
+require 'spec_helper'
+
+# This spec was generated by rspec-rails when you ran the scaffold generator.
+# It demonstrates how one might use RSpec to specify the controller code that
+# was generated by Rails when you ran the scaffold generator.
+#
+# It assumes that the implementation code is generated by the rails scaffold
+# generator. If you are using any extension libraries to generate different
+# controller code, this generated spec may or may not pass.
+#
+# It only uses APIs available in rails and/or rspec-rails. There are a number
+# of tools you can use to make these specs even more expressive, but we're
+# sticking to rails and rspec-rails APIs to keep things simple and stable.
+#
+# Compared to earlier versions of this generator, there is very limited use of
+# stubs and message expectations in this spec. Stubs are only used when there
+# is no simpler way to get a handle on the object needed for the example.
+# Message expectations are only used when there is no simpler way to specify
+# that an instance is receiving a specific message.
+
+describe Desktop::CoAuthorRelationsController do
+
+ # This should return the minimal set of attributes required to create a valid
+ # Desktop::CoAuthorRelation. As you add validations to Desktop::CoAuthorRelation, be sure to
+ # update the return value of this method accordingly.
+ def valid_attributes
+ {}
+ end
+
+ # This should return the minimal set of values that should be in the session
+ # in order to pass any filters (e.g. authentication) defined in
+ # Desktop::CoAuthorRelationsController. Be sure to keep this updated too.
+ def valid_session
+ {}
+ end
+
+ describe "GET index" do
+ it "assigns all desktop_co_author_relations as @desktop_co_author_relations" do
+ co_author_relation = Desktop::CoAuthorRelation.create! valid_attributes
+ get :index, {}, valid_session
+ assigns(:desktop_co_author_relations).should eq([co_author_relation])
+ end
+ end
+
+ describe "GET show" do
+ it "assigns the requested desktop_co_author_relation as @desktop_co_author_relation" do
+ co_author_relation = Desktop::CoAuthorRelation.create! valid_attributes
+ get :show, {:id => co_author_relation.to_param}, valid_session
+ assigns(:desktop_co_author_relation).should eq(co_author_relation)
+ end
+ end
+
+ describe "GET new" do
+ it "assigns a new desktop_co_author_relation as @desktop_co_author_relation" do
+ get :new, {}, valid_session
+ assigns(:desktop_co_author_relation).should be_a_new(Desktop::CoAuthorRelation)
+ end
+ end
+
+ describe "GET edit" do
+ it "assigns the requested desktop_co_author_relation as @desktop_co_author_relation" do
+ co_author_relation = Desktop::CoAuthorRelation.create! valid_attributes
+ get :edit, {:id => co_author_relation.to_param}, valid_session
+ assigns(:desktop_co_author_relation).should eq(co_author_relation)
+ end
+ end
+
+ describe "POST create" do
+ describe "with valid params" do
+ it "creates a new Desktop::CoAuthorRelation" do
+ expect {
+ post :create, {:desktop_co_author_relation => valid_attributes}, valid_session
+ }.to change(Desktop::CoAuthorRelation, :count).by(1)
+ end
+
+ it "assigns a newly created desktop_co_author_relation as @desktop_co_author_relation" do
+ post :create, {:desktop_co_author_relation => valid_attributes}, valid_session
+ assigns(:desktop_co_author_relation).should be_a(Desktop::CoAuthorRelation)
+ assigns(:desktop_co_author_relation).should be_persisted
+ end
+
+ it "redirects to the created desktop_co_author_relation" do
+ post :create, {:desktop_co_author_relation => valid_attributes}, valid_session
+ response.should redirect_to(Desktop::CoAuthorRelation.last)
+ end
+ end
+
+ describe "with invalid params" do
+ it "assigns a newly created but unsaved desktop_co_author_relation as @desktop_co_author_relation" do
+ # Trigger the behavior that occurs when invalid params are submitted
+ Desktop::CoAuthorRelation.any_instance.stub(:save).and_return(false)
+ post :create, {:desktop_co_author_relation => {}}, valid_session
+ assigns(:desktop_co_author_relation).should be_a_new(Desktop::CoAuthorRelation)
+ end
+
+ it "re-renders the 'new' template" do
+ # Trigger the behavior that occurs when invalid params are submitted
+ Desktop::CoAuthorRelation.any_instance.stub(:save).and_return(false)
+ post :create, {:desktop_co_author_relation => {}}, valid_session
+ response.should render_template("new")
+ end
+ end
+ end
+
+ describe "PUT update" do
+ describe "with valid params" do
+ it "updates the requested desktop_co_author_relation" do
+ co_author_relation = Desktop::CoAuthorRelation.create! valid_attributes
+ # Assuming there are no other desktop_co_author_relations in the database, this
+ # specifies that the Desktop::CoAuthorRelation created on the previous line
+ # receives the :update_attributes message with whatever params are
+ # submitted in the request.
+ Desktop::CoAuthorRelation.any_instance.should_receive(:update_attributes).with({'these' => 'params'})
+ put :update, {:id => co_author_relation.to_param, :desktop_co_author_relation => {'these' => 'params'}}, valid_session
+ end
+
+ it "assigns the requested desktop_co_author_relation as @desktop_co_author_relation" do
+ co_author_relation = Desktop::CoAuthorRelation.create! valid_attributes
+ put :update, {:id => co_author_relation.to_param, :desktop_co_author_relation => valid_attributes}, valid_session
+ assigns(:desktop_co_author_relation).should eq(co_author_relation)
+ end
+
+ it "redirects to the desktop_co_author_relation" do
+ co_author_relation = Desktop::CoAuthorRelation.create! valid_attributes
+ put :update, {:id => co_author_relation.to_param, :desktop_co_author_relation => valid_attributes}, valid_session
+ response.should redirect_to(co_author_relation)
+ end
+ end
+
+ describe "with invalid params" do
+ it "assigns the desktop_co_author_relation as @desktop_co_author_relation" do
+ co_author_relation = Desktop::CoAuthorRelation.create! valid_attributes
+ # Trigger the behavior that occurs when invalid params are submitted
+ Desktop::CoAuthorRelation.any_instance.stub(:save).and_return(false)
+ put :update, {:id => co_author_relation.to_param, :desktop_co_author_relation => {}}, valid_session
+ assigns(:desktop_co_author_relation).should eq(co_author_relation)
+ end
+
+ it "re-renders the 'edit' template" do
+ co_author_relation = Desktop::CoAuthorRelation.create! valid_attributes
+ # Trigger the behavior that occurs when invalid params are submitted
+ Desktop::CoAuthorRelation.any_instance.stub(:save).and_return(false)
+ put :update, {:id => co_author_relation.to_param, :desktop_co_author_relation => {}}, valid_session
+ response.should render_template("edit")
+ end
+ end
+ end
+
+ describe "DELETE destroy" do
+ it "destroys the requested desktop_co_author_relation" do
+ co_author_relation = Desktop::CoAuthorRelation.create! valid_attributes
+ expect {
+ delete :destroy, {:id => co_author_relation.to_param}, valid_session
+ }.to change(Desktop::CoAuthorRelation, :count).by(-1)
+ end
+
+ it "redirects to the desktop_co_author_relations list" do
+ co_author_relation = Desktop::CoAuthorRelation.create! valid_attributes
+ delete :destroy, {:id => co_author_relation.to_param}, valid_session
+ response.should redirect_to(desktop_co_author_relations_url)
+ end
+ end
+
+end
diff --git a/spec/controllers/desktop/journal_lists_controller_spec.rb b/spec/controllers/desktop/journal_lists_controller_spec.rb
new file mode 100644
index 00000000..99d2e2dc
--- /dev/null
+++ b/spec/controllers/desktop/journal_lists_controller_spec.rb
@@ -0,0 +1,164 @@
+require 'spec_helper'
+
+# This spec was generated by rspec-rails when you ran the scaffold generator.
+# It demonstrates how one might use RSpec to specify the controller code that
+# was generated by Rails when you ran the scaffold generator.
+#
+# It assumes that the implementation code is generated by the rails scaffold
+# generator. If you are using any extension libraries to generate different
+# controller code, this generated spec may or may not pass.
+#
+# It only uses APIs available in rails and/or rspec-rails. There are a number
+# of tools you can use to make these specs even more expressive, but we're
+# sticking to rails and rspec-rails APIs to keep things simple and stable.
+#
+# Compared to earlier versions of this generator, there is very limited use of
+# stubs and message expectations in this spec. Stubs are only used when there
+# is no simpler way to get a handle on the object needed for the example.
+# Message expectations are only used when there is no simpler way to specify
+# that an instance is receiving a specific message.
+
+describe Desktop::JournalListsController do
+
+ # This should return the minimal set of attributes required to create a valid
+ # Desktop::JournalList. As you add validations to Desktop::JournalList, be sure to
+ # update the return value of this method accordingly.
+ def valid_attributes
+ {}
+ end
+
+ # This should return the minimal set of values that should be in the session
+ # in order to pass any filters (e.g. authentication) defined in
+ # Desktop::JournalListsController. Be sure to keep this updated too.
+ def valid_session
+ {}
+ end
+
+ describe "GET index" do
+ it "assigns all desktop_journal_lists as @desktop_journal_lists" do
+ journal_list = Desktop::JournalList.create! valid_attributes
+ get :index, {}, valid_session
+ assigns(:desktop_journal_lists).should eq([journal_list])
+ end
+ end
+
+ describe "GET show" do
+ it "assigns the requested desktop_journal_list as @desktop_journal_list" do
+ journal_list = Desktop::JournalList.create! valid_attributes
+ get :show, {:id => journal_list.to_param}, valid_session
+ assigns(:desktop_journal_list).should eq(journal_list)
+ end
+ end
+
+ describe "GET new" do
+ it "assigns a new desktop_journal_list as @desktop_journal_list" do
+ get :new, {}, valid_session
+ assigns(:desktop_journal_list).should be_a_new(Desktop::JournalList)
+ end
+ end
+
+ describe "GET edit" do
+ it "assigns the requested desktop_journal_list as @desktop_journal_list" do
+ journal_list = Desktop::JournalList.create! valid_attributes
+ get :edit, {:id => journal_list.to_param}, valid_session
+ assigns(:desktop_journal_list).should eq(journal_list)
+ end
+ end
+
+ describe "POST create" do
+ describe "with valid params" do
+ it "creates a new Desktop::JournalList" do
+ expect {
+ post :create, {:desktop_journal_list => valid_attributes}, valid_session
+ }.to change(Desktop::JournalList, :count).by(1)
+ end
+
+ it "assigns a newly created desktop_journal_list as @desktop_journal_list" do
+ post :create, {:desktop_journal_list => valid_attributes}, valid_session
+ assigns(:desktop_journal_list).should be_a(Desktop::JournalList)
+ assigns(:desktop_journal_list).should be_persisted
+ end
+
+ it "redirects to the created desktop_journal_list" do
+ post :create, {:desktop_journal_list => valid_attributes}, valid_session
+ response.should redirect_to(Desktop::JournalList.last)
+ end
+ end
+
+ describe "with invalid params" do
+ it "assigns a newly created but unsaved desktop_journal_list as @desktop_journal_list" do
+ # Trigger the behavior that occurs when invalid params are submitted
+ Desktop::JournalList.any_instance.stub(:save).and_return(false)
+ post :create, {:desktop_journal_list => {}}, valid_session
+ assigns(:desktop_journal_list).should be_a_new(Desktop::JournalList)
+ end
+
+ it "re-renders the 'new' template" do
+ # Trigger the behavior that occurs when invalid params are submitted
+ Desktop::JournalList.any_instance.stub(:save).and_return(false)
+ post :create, {:desktop_journal_list => {}}, valid_session
+ response.should render_template("new")
+ end
+ end
+ end
+
+ describe "PUT update" do
+ describe "with valid params" do
+ it "updates the requested desktop_journal_list" do
+ journal_list = Desktop::JournalList.create! valid_attributes
+ # Assuming there are no other desktop_journal_lists in the database, this
+ # specifies that the Desktop::JournalList created on the previous line
+ # receives the :update_attributes message with whatever params are
+ # submitted in the request.
+ Desktop::JournalList.any_instance.should_receive(:update_attributes).with({'these' => 'params'})
+ put :update, {:id => journal_list.to_param, :desktop_journal_list => {'these' => 'params'}}, valid_session
+ end
+
+ it "assigns the requested desktop_journal_list as @desktop_journal_list" do
+ journal_list = Desktop::JournalList.create! valid_attributes
+ put :update, {:id => journal_list.to_param, :desktop_journal_list => valid_attributes}, valid_session
+ assigns(:desktop_journal_list).should eq(journal_list)
+ end
+
+ it "redirects to the desktop_journal_list" do
+ journal_list = Desktop::JournalList.create! valid_attributes
+ put :update, {:id => journal_list.to_param, :desktop_journal_list => valid_attributes}, valid_session
+ response.should redirect_to(journal_list)
+ end
+ end
+
+ describe "with invalid params" do
+ it "assigns the desktop_journal_list as @desktop_journal_list" do
+ journal_list = Desktop::JournalList.create! valid_attributes
+ # Trigger the behavior that occurs when invalid params are submitted
+ Desktop::JournalList.any_instance.stub(:save).and_return(false)
+ put :update, {:id => journal_list.to_param, :desktop_journal_list => {}}, valid_session
+ assigns(:desktop_journal_list).should eq(journal_list)
+ end
+
+ it "re-renders the 'edit' template" do
+ journal_list = Desktop::JournalList.create! valid_attributes
+ # Trigger the behavior that occurs when invalid params are submitted
+ Desktop::JournalList.any_instance.stub(:save).and_return(false)
+ put :update, {:id => journal_list.to_param, :desktop_journal_list => {}}, valid_session
+ response.should render_template("edit")
+ end
+ end
+ end
+
+ describe "DELETE destroy" do
+ it "destroys the requested desktop_journal_list" do
+ journal_list = Desktop::JournalList.create! valid_attributes
+ expect {
+ delete :destroy, {:id => journal_list.to_param}, valid_session
+ }.to change(Desktop::JournalList, :count).by(-1)
+ end
+
+ it "redirects to the desktop_journal_lists list" do
+ journal_list = Desktop::JournalList.create! valid_attributes
+ delete :destroy, {:id => journal_list.to_param}, valid_session
+ response.should redirect_to(desktop_journal_lists_url)
+ end
+ end
+
+end
diff --git a/spec/helpers/desktop/co_author_relations_helper_spec.rb b/spec/helpers/desktop/co_author_relations_helper_spec.rb
new file mode 100644
index 00000000..77563e2e
--- /dev/null
+++ b/spec/helpers/desktop/co_author_relations_helper_spec.rb
@@ -0,0 +1,15 @@
+require 'spec_helper'
+
+# Specs in this file have access to a helper object that includes
+# the Desktop::CoAuthorRelationsHelper. For example:
+#
+# describe Desktop::CoAuthorRelationsHelper do
+# describe "string concat" do
+# it "concats two strings with spaces" do
+# helper.concat_strings("this","that").should == "this that"
+# end
+# end
+# end
+describe Desktop::CoAuthorRelationsHelper do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/helpers/desktop/journal_lists_helper_spec.rb b/spec/helpers/desktop/journal_lists_helper_spec.rb
new file mode 100644
index 00000000..47b911a9
--- /dev/null
+++ b/spec/helpers/desktop/journal_lists_helper_spec.rb
@@ -0,0 +1,15 @@
+require 'spec_helper'
+
+# Specs in this file have access to a helper object that includes
+# the Desktop::JournalListsHelper. For example:
+#
+# describe Desktop::JournalListsHelper do
+# describe "string concat" do
+# it "concats two strings with spaces" do
+# helper.concat_strings("this","that").should == "this that"
+# end
+# end
+# end
+describe Desktop::JournalListsHelper do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/requests/desktop/desktop_co_author_relations_spec.rb b/spec/requests/desktop/desktop_co_author_relations_spec.rb
new file mode 100644
index 00000000..a854bd28
--- /dev/null
+++ b/spec/requests/desktop/desktop_co_author_relations_spec.rb
@@ -0,0 +1,11 @@
+require 'spec_helper'
+
+describe "Desktop::CoAuthorRelations" do
+ describe "GET /desktop_co_author_relations" do
+ it "works! (now write some real specs)" do
+ # Run the generator again with the --webrat flag if you want to use webrat methods/matchers
+ get desktop_co_author_relations_path
+ response.status.should be(200)
+ end
+ end
+end
diff --git a/spec/requests/desktop/desktop_journal_lists_spec.rb b/spec/requests/desktop/desktop_journal_lists_spec.rb
new file mode 100644
index 00000000..c1ac52e3
--- /dev/null
+++ b/spec/requests/desktop/desktop_journal_lists_spec.rb
@@ -0,0 +1,11 @@
+require 'spec_helper'
+
+describe "Desktop::JournalLists" do
+ describe "GET /desktop_journal_lists" do
+ it "works! (now write some real specs)" do
+ # Run the generator again with the --webrat flag if you want to use webrat methods/matchers
+ get desktop_journal_lists_path
+ response.status.should be(200)
+ end
+ end
+end
diff --git a/spec/routing/desktop/co_author_relations_routing_spec.rb b/spec/routing/desktop/co_author_relations_routing_spec.rb
new file mode 100644
index 00000000..6c4b0847
--- /dev/null
+++ b/spec/routing/desktop/co_author_relations_routing_spec.rb
@@ -0,0 +1,35 @@
+require "spec_helper"
+
+describe Desktop::CoAuthorRelationsController do
+ describe "routing" do
+
+ it "routes to #index" do
+ get("/desktop/co_author_relations").should route_to("desktop/co_author_relations#index")
+ end
+
+ it "routes to #new" do
+ get("/desktop/co_author_relations/new").should route_to("desktop/co_author_relations#new")
+ end
+
+ it "routes to #show" do
+ get("/desktop/co_author_relations/1").should route_to("desktop/co_author_relations#show", :id => "1")
+ end
+
+ it "routes to #edit" do
+ get("/desktop/co_author_relations/1/edit").should route_to("desktop/co_author_relations#edit", :id => "1")
+ end
+
+ it "routes to #create" do
+ post("/desktop/co_author_relations").should route_to("desktop/co_author_relations#create")
+ end
+
+ it "routes to #update" do
+ put("/desktop/co_author_relations/1").should route_to("desktop/co_author_relations#update", :id => "1")
+ end
+
+ it "routes to #destroy" do
+ delete("/desktop/co_author_relations/1").should route_to("desktop/co_author_relations#destroy", :id => "1")
+ end
+
+ end
+end
diff --git a/spec/routing/desktop/journal_lists_routing_spec.rb b/spec/routing/desktop/journal_lists_routing_spec.rb
new file mode 100644
index 00000000..79eac59e
--- /dev/null
+++ b/spec/routing/desktop/journal_lists_routing_spec.rb
@@ -0,0 +1,35 @@
+require "spec_helper"
+
+describe Desktop::JournalListsController do
+ describe "routing" do
+
+ it "routes to #index" do
+ get("/desktop/journal_lists").should route_to("desktop/journal_lists#index")
+ end
+
+ it "routes to #new" do
+ get("/desktop/journal_lists/new").should route_to("desktop/journal_lists#new")
+ end
+
+ it "routes to #show" do
+ get("/desktop/journal_lists/1").should route_to("desktop/journal_lists#show", :id => "1")
+ end
+
+ it "routes to #edit" do
+ get("/desktop/journal_lists/1/edit").should route_to("desktop/journal_lists#edit", :id => "1")
+ end
+
+ it "routes to #create" do
+ post("/desktop/journal_lists").should route_to("desktop/journal_lists#create")
+ end
+
+ it "routes to #update" do
+ put("/desktop/journal_lists/1").should route_to("desktop/journal_lists#update", :id => "1")
+ end
+
+ it "routes to #destroy" do
+ delete("/desktop/journal_lists/1").should route_to("desktop/journal_lists#destroy", :id => "1")
+ end
+
+ end
+end
diff --git a/spec/views/desktop/co_author_relations/edit.html.erb_spec.rb b/spec/views/desktop/co_author_relations/edit.html.erb_spec.rb
new file mode 100644
index 00000000..c2fd5a98
--- /dev/null
+++ b/spec/views/desktop/co_author_relations/edit.html.erb_spec.rb
@@ -0,0 +1,15 @@
+require 'spec_helper'
+
+describe "desktop/co_author_relations/edit" do
+ before(:each) do
+ @desktop_co_author_relation = assign(:desktop_co_author_relation, stub_model(Desktop::CoAuthorRelation))
+ end
+
+ it "renders the edit desktop_co_author_relation form" do
+ render
+
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
+ assert_select "form", :action => desktop_co_author_relations_path(@desktop_co_author_relation), :method => "post" do
+ end
+ end
+end
diff --git a/spec/views/desktop/co_author_relations/index.html.erb_spec.rb b/spec/views/desktop/co_author_relations/index.html.erb_spec.rb
new file mode 100644
index 00000000..0e338e63
--- /dev/null
+++ b/spec/views/desktop/co_author_relations/index.html.erb_spec.rb
@@ -0,0 +1,15 @@
+require 'spec_helper'
+
+describe "desktop/co_author_relations/index" do
+ before(:each) do
+ assign(:desktop_co_author_relations, [
+ stub_model(Desktop::CoAuthorRelation),
+ stub_model(Desktop::CoAuthorRelation)
+ ])
+ end
+
+ it "renders a list of desktop/co_author_relations" do
+ render
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
+ end
+end
diff --git a/spec/views/desktop/co_author_relations/new.html.erb_spec.rb b/spec/views/desktop/co_author_relations/new.html.erb_spec.rb
new file mode 100644
index 00000000..77da4220
--- /dev/null
+++ b/spec/views/desktop/co_author_relations/new.html.erb_spec.rb
@@ -0,0 +1,15 @@
+require 'spec_helper'
+
+describe "desktop/co_author_relations/new" do
+ before(:each) do
+ assign(:desktop_co_author_relation, stub_model(Desktop::CoAuthorRelation).as_new_record)
+ end
+
+ it "renders new desktop_co_author_relation form" do
+ render
+
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
+ assert_select "form", :action => desktop_co_author_relations_path, :method => "post" do
+ end
+ end
+end
diff --git a/spec/views/desktop/co_author_relations/show.html.erb_spec.rb b/spec/views/desktop/co_author_relations/show.html.erb_spec.rb
new file mode 100644
index 00000000..5a73dfde
--- /dev/null
+++ b/spec/views/desktop/co_author_relations/show.html.erb_spec.rb
@@ -0,0 +1,12 @@
+require 'spec_helper'
+
+describe "desktop/co_author_relations/show" do
+ before(:each) do
+ @desktop_co_author_relation = assign(:desktop_co_author_relation, stub_model(Desktop::CoAuthorRelation))
+ end
+
+ it "renders attributes in
" do
+ render
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
+ end
+end
diff --git a/spec/views/desktop/journal_lists/edit.html.erb_spec.rb b/spec/views/desktop/journal_lists/edit.html.erb_spec.rb
new file mode 100644
index 00000000..92a7ab73
--- /dev/null
+++ b/spec/views/desktop/journal_lists/edit.html.erb_spec.rb
@@ -0,0 +1,15 @@
+require 'spec_helper'
+
+describe "desktop/journal_lists/edit" do
+ before(:each) do
+ @desktop_journal_list = assign(:desktop_journal_list, stub_model(Desktop::JournalList))
+ end
+
+ it "renders the edit desktop_journal_list form" do
+ render
+
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
+ assert_select "form", :action => desktop_journal_lists_path(@desktop_journal_list), :method => "post" do
+ end
+ end
+end
diff --git a/spec/views/desktop/journal_lists/index.html.erb_spec.rb b/spec/views/desktop/journal_lists/index.html.erb_spec.rb
new file mode 100644
index 00000000..93bfc83b
--- /dev/null
+++ b/spec/views/desktop/journal_lists/index.html.erb_spec.rb
@@ -0,0 +1,15 @@
+require 'spec_helper'
+
+describe "desktop/journal_lists/index" do
+ before(:each) do
+ assign(:desktop_journal_lists, [
+ stub_model(Desktop::JournalList),
+ stub_model(Desktop::JournalList)
+ ])
+ end
+
+ it "renders a list of desktop/journal_lists" do
+ render
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
+ end
+end
diff --git a/spec/views/desktop/journal_lists/new.html.erb_spec.rb b/spec/views/desktop/journal_lists/new.html.erb_spec.rb
new file mode 100644
index 00000000..b9751d44
--- /dev/null
+++ b/spec/views/desktop/journal_lists/new.html.erb_spec.rb
@@ -0,0 +1,15 @@
+require 'spec_helper'
+
+describe "desktop/journal_lists/new" do
+ before(:each) do
+ assign(:desktop_journal_list, stub_model(Desktop::JournalList).as_new_record)
+ end
+
+ it "renders new desktop_journal_list form" do
+ render
+
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
+ assert_select "form", :action => desktop_journal_lists_path, :method => "post" do
+ end
+ end
+end
diff --git a/spec/views/desktop/journal_lists/show.html.erb_spec.rb b/spec/views/desktop/journal_lists/show.html.erb_spec.rb
new file mode 100644
index 00000000..d18b4ece
--- /dev/null
+++ b/spec/views/desktop/journal_lists/show.html.erb_spec.rb
@@ -0,0 +1,12 @@
+require 'spec_helper'
+
+describe "desktop/journal_lists/show" do
+ before(:each) do
+ @desktop_journal_list = assign(:desktop_journal_list, stub_model(Desktop::JournalList))
+ end
+
+ it "renders attributes in
" do
+ render
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
+ end
+end
diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb
index 0151d4c0..1802db62 100644
--- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb
+++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/back_end/bulletin_categorys_controller.rb
@@ -1,6 +1,7 @@
class Panel::Announcement::BackEnd::BulletinCategorysController < OrbitBackendController
include OrbitControllerLib::DivisionForDisable
- before_filter :for_app_manager,:except => [:index,:get_categorys_json,:get_bulletins_json]
+ # if someone want to use json format replace with rss, please add :get_bulletins_json to below
+ before_filter :for_app_manager,:except => [:index,:get_categorys_json]
def index
@bulletin_categorys = get_categories_for_index("BulletinCategory")
@@ -22,7 +23,15 @@ class Panel::Announcement::BackEnd::BulletinCategorysController < OrbitBackendCo
categorys.each do |c|
data << {
category: c.title,
- link: "http://#{request.host_with_port}#{panel_announcement_back_end_bulletin_category_get_bulletins_json_path(c)}"
+ # this is a json format
+ # link: "http://#{request.host_with_port}#{panel_announcement_back_end_bulletin_category_get_bulletins_json_path(c)}"
+ # remember to uncommand a rule in route.rb, too
+ link: "#{url_for( :action => "index",
+ :controller => "panel/announcement/front_end/bulletins",
+ :format => :rss,
+ :only_path => false,
+ :inner=>true,
+ :category_id => c )}"
}
end
diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb
index 8fa7af68..456d57d9 100644
--- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb
+++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb
@@ -1,10 +1,10 @@
class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
-
+
def initialize
super
@app_title = 'announcement'
end
-
+
# GET /bulletins
# GET /bulletins.xml
def index_bulletins_by_unit
@@ -14,14 +14,15 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
end
def index
- @item = Page.find(params[:page_id])
-
- if @item.frontend_data_count
- @page_num = @item.frontend_data_count
- else
- @page_num = 15
- end
- @frontend_style = @item.frontend_style
+ @item = Page.find(params[:page_id]) rescue nil
+ if @item
+ if @item.frontend_data_count
+ @page_num = @item.frontend_data_count
+ else
+ @page_num = 15
+ end
+ @frontend_style = @item.frontend_style
+ end
@page = Page.find(params[:page_id]) rescue nil
if !params[:search_query].blank?
@@ -54,9 +55,9 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
end
impressionist(@tag) if @tag
end
-
+
end
-
+
def show
@page = Page.find(params[:page_id]) rescue nil
if params[:preview] == "true"
@@ -71,22 +72,22 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController
render :text => "
#{t('sys.can_not_display_due_to_no_context')}
".html_safe
end
else
- render :nothing => true, :status => 403
+ render :nothing => true, :status => 403
end
end
end
-
+
def preview_content
@bulletin = Bulletin.find params[:id] rescue nil
@bulletin = Preview.find(params[:id]).get_virtual_object if @bulletin.nil?
get_categorys
end
-
+
protected
-
+
def get_categorys
@bulletin_categorys = BulletinCategory.all
end
-
+
end
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/approvals/_modal_approve.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/approvals/_modal_approve.html.erb
index ac04408b..797757a5 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/approvals/_modal_approve.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/approvals/_modal_approve.html.erb
@@ -3,7 +3,7 @@
@@ -19,7 +19,7 @@
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/approvals/_modal_list.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/approvals/_modal_list.html.erb
index 8ecf7b56..a00c25c1 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/approvals/_modal_list.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/approvals/_modal_list.html.erb
@@ -22,7 +22,7 @@
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_category_setting/_modal_list.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_category_setting/_modal_list.html.erb
index 98b1699e..28edc919 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_category_setting/_modal_list.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_category_setting/_modal_list.html.erb
@@ -22,7 +22,7 @@
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/_quick_edit_qe.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/_quick_edit_qe.html.erb
index 9e774709..d505971f 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/_quick_edit_qe.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletin_categorys/_quick_edit_qe.html.erb
@@ -18,11 +18,4 @@
<% end %>
<% end %>
-
-
- <%= f.label :display %>
- <%= f.radio_button :display, "List" %>List
- <%= f.radio_button :display, "Picture" %>Picture
- 顯示方式是設定在前台頁面時,資訊所呈現的樣式
-
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin.html.erb
index 111aaa76..c916acf9 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin.html.erb
@@ -50,7 +50,7 @@
<% end -%>
<% if show_delete_link(bulletin) %>
-
<%= link_to t(:delete), panel_announcement_back_end_bulletin_path(bulletin), :confirm => t(:sure?), :method => :delete, :remote => true %>
+
<%= link_to t(:delete_), panel_announcement_back_end_bulletin_path(bulletin), :confirm => t(:sure?), :method => :delete, :remote => true %>
<% end %>
<% if show_approval_link(bulletin) %>
<%= link_to t(:approval_), panel_announcement_back_end_bulletin_approval_preview_path(bulletin),:class => 'preview_trigger' %> <%#= #TODO add ancher so user can quick access into that part %>
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin_file_qe.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin_file_qe.html.erb
index 547736ff..b9270dbe 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin_file_qe.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin_file_qe.html.erb
@@ -4,7 +4,7 @@
@@ -16,7 +16,7 @@
<%= f.fields_for :title_translations do |f| %>
<% @site_valid_locales.each do |locale| %>
-
Name <%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %>
+
<%= t(:name) %> <%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %>
<%= f.text_field locale, :id => "file-#{locale}", :class => "input-xlarge", :value => (@bulletin_file.title_translations[locale] rescue nil) %>
@@ -27,7 +27,7 @@
<%= f.fields_for :description_translations do |f| %>
<% @site_valid_locales.each do |locale| %>
-
Description <%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %>
+
<%= t(:description) %> <%= I18nVariable.first(:conditions => {:key => locale})[I18n.locale] %>
<%= f.text_field locale, :id => "file-#{locale}", :class => "input-xlarge", :value => (@bulletin_file.description_translations[locale] rescue nil) %>
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin_link_qe.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin_link_qe.html.erb
index 0efbdc15..de7567a5 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin_link_qe.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_bulletin_link_qe.html.erb
@@ -4,11 +4,11 @@
-
URL
+
<%= t(:url) %>
<%= f.text_field :url %>
@@ -17,7 +17,7 @@
<%= f.fields_for :title_translations do |f| %>
<% @site_valid_locales.each do |locale| %>
- <%= label_tag "link-#{locale}", "Name-#{I18nVariable.from_locale(locale)}", :class => 'control-label' %>
+ <%= label_tag "link-#{locale}", "#{t(:name)}-#{I18nVariable.from_locale(locale)}", :class => 'control-label' %>
<%#= f.text_field locale, :class => 'input-xxlarge' %>
<%= f.text_field locale, :class => 'control-label', :value => (@bulletin_link.title_translations[locale] rescue nil) %>
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_file.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_file.html.erb
index c1885287..7d0445ad 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_file.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_file.html.erb
@@ -18,13 +18,13 @@
<% if bulletin_file.new_record? %>
- <%= t(:delete) %>
+ <%= t(:delete_) %>
<% else %>
<%= f.hidden_field :id %>
<% if bulletin_file.is_built_in? %>
<% else %>
- <%= t(:delete) %>
+ <%= t(:delete_) %>
<%= f.hidden_field :_destroy, :value => nil, :class => 'should_destroy' %>
<% end %>
<% end %>
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_form.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_form.html.erb
index 2e27bb02..ddee9f96 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_form.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_form.html.erb
@@ -11,7 +11,7 @@
-
+
@@ -32,7 +32,7 @@
-->
<% if @bulletin.image.file %>
<%= f.check_box :remove_image %>
- <%= t(:delete_file) %>
+ <%= t('delete.file') %>
<% end %>
@@ -43,7 +43,7 @@
-
+
<%= t(:start) %>
@@ -65,7 +65,7 @@
-
+
<%= content_tag :label,:class => "checkbox inline" do -%>
@@ -89,7 +89,7 @@
-
+
<%= @bulletin.not_checked_reason rescue t("rejected_reason_empty") %>
@@ -99,7 +99,7 @@
-
+
<% @tags.each do |tag| %>
@@ -186,7 +186,7 @@
-
+
@@ -230,7 +230,7 @@
-
+
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_modal_preview.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_modal_preview.html.erb
index 9326774a..f04053dd 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_modal_preview.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_modal_preview.html.erb
@@ -3,7 +3,7 @@
@@ -20,7 +20,7 @@
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_quick_edit_picture.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_quick_edit_picture.html.erb
index 2871fcbc..42359f1c 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_quick_edit_picture.html.erb
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/back_end/bulletins/_quick_edit_picture.html.erb
@@ -16,7 +16,7 @@
<% if bulletin.image.file %>
<%= f.check_box :remove_image %>
- <%= t(:delete_file) %>
+ <%= t('delete.file') %>
<% end %>
diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/front_end/bulletins/index.rss.builder b/vendor/built_in_modules/announcement/app/views/panel/announcement/front_end/bulletins/index.rss.builder
index ca4719c6..40698bfc 100644
--- a/vendor/built_in_modules/announcement/app/views/panel/announcement/front_end/bulletins/index.rss.builder
+++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/front_end/bulletins/index.rss.builder
@@ -1,13 +1,13 @@
xml.instruct! :xml, :version => "1.0"
xml.rss :version => "2.0" do
xml.channel do
- if @current_category
- xml.title @current_category.title_translations[I18n.locale.to_s]
- else
- xml.title t('announcement.announcement')
- end
+ if @current_category
+ xml.title @current_category.title_translations[I18n.locale.to_s]
+ else
+ xml.title t('announcement.announcement')
+ end
xml.link url_for(:action=>"index", :controller=>"panel/announcement/front_end/bulletins",:format=> :rss,:only_path=>false,:inner=>true)
-
+
for bulletin in @bulletins
xml.item do
xml.title bulletin.title_translations[I18n.locale.to_s]
@@ -18,4 +18,4 @@ xml.rss :version => "2.0" do
end
end
end
-end
\ No newline at end of file
+end
diff --git a/vendor/built_in_modules/announcement/config/routes.rb b/vendor/built_in_modules/announcement/config/routes.rb
index 35500ac3..8c11ebd0 100644
--- a/vendor/built_in_modules/announcement/config/routes.rb
+++ b/vendor/built_in_modules/announcement/config/routes.rb
@@ -6,7 +6,7 @@ Rails.application.routes.draw do
match 'approval_setting' => "approvals#setting" ,:as => :approval_setting,:via => :get
match 'approval_setting' => "approvals#update_setting" ,:as => :approval_setting,:via => :post
match 'approval_setting' => "approvals#user_list" ,:as => :approval_user_list,:via => :put
- #match 'get_bulletins_json' => "bulletins#get_bulletins_json" ,:as => :bulletins_json_list,:via => :get
+
resources :bulletins do
match "approve/:bulletin_id" => "approvals#preview_and_approve",:as => :approval_preview,:via => :put
match "approve/:bulletin_id" => "approvals#approve",:as => :approve,:via => :post
@@ -29,7 +29,9 @@ Rails.application.routes.draw do
collection do
get 'get_categorys_json'
end
- match "get_bulletins_json/" => "bulletin_categorys#get_bulletins_json", :as => :get_bulletins_json
+ # if want to use json
+ # please uncommand below line
+ # match "get_bulletins_json/" => "bulletin_categorys#get_bulletins_json", :as => :get_bulletins_json
end
resources :bulletin_links, :controller => 'bulletin_links' do
diff --git a/vendor/built_in_modules/announcement/init.rb b/vendor/built_in_modules/announcement/init.rb
index 9a2c0d43..79aba936 100644
--- a/vendor/built_in_modules/announcement/init.rb
+++ b/vendor/built_in_modules/announcement/init.rb
@@ -16,7 +16,7 @@ end
# :active_for_controllers=> ['news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals'],
# :active_for_ob_auths_object => ['NewsBulletinCategory'],
# :head_link => panel_news_back_end_news_bulletins_path ,
-# :head_label=> I18n.t('admin.news')
+# :head_label=> I18n.t(:news)
# context_link :link=>new_panel_news_back_end_news_bulletin_path ,
# :priority=>1,:label=>I18n.t('announcement.add_new'),
diff --git a/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/_form.html.erb b/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/_form.html.erb
index bd080e1e..1314a7c4 100644
--- a/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/_form.html.erb
+++ b/vendor/built_in_modules/archive/app/views/panel/archive/back_end/archive_files/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<%= f.check_box :is_top %><%= t('top') %>
@@ -24,7 +24,7 @@
-
+
<% @tags.each do |tag| %>
<%= check_box_tag 'archive_file[tag_ids][]', tag.id, @archive_file.tag_ids.include?(tag.id)%>
diff --git a/vendor/built_in_modules/gallery/app/views/panel/gallery/back_end/albums/edit.html.erb b/vendor/built_in_modules/gallery/app/views/panel/gallery/back_end/albums/edit.html.erb
index b9cbbbd4..f6aff8f3 100644
--- a/vendor/built_in_modules/gallery/app/views/panel/gallery/back_end/albums/edit.html.erb
+++ b/vendor/built_in_modules/gallery/app/views/panel/gallery/back_end/albums/edit.html.erb
@@ -4,7 +4,7 @@
Home /
- <%= t('admin.orbit_gallery') %> /
+ <%= t(:gallery) %> /
<%= t('gallery.edit') %>
diff --git a/vendor/built_in_modules/gallery/app/views/panel/gallery/front_end/orbit_galleries/edit_album.html.erb b/vendor/built_in_modules/gallery/app/views/panel/gallery/front_end/orbit_galleries/edit_album.html.erb
index eab30d52..347b5f67 100644
--- a/vendor/built_in_modules/gallery/app/views/panel/gallery/front_end/orbit_galleries/edit_album.html.erb
+++ b/vendor/built_in_modules/gallery/app/views/panel/gallery/front_end/orbit_galleries/edit_album.html.erb
@@ -1,6 +1,6 @@
Home /
- <%= t('admin.orbit_gallery') %> /
+ <%= t(:gallery) %> /
<%= t('gallery.edit') %>
diff --git a/vendor/built_in_modules/page_content/app/views/panel/page_content/back_end/page_contexts/_modal_preview.html.erb b/vendor/built_in_modules/page_content/app/views/panel/page_content/back_end/page_contexts/_modal_preview.html.erb
index 49414cfd..0e0e29d3 100644
--- a/vendor/built_in_modules/page_content/app/views/panel/page_content/back_end/page_contexts/_modal_preview.html.erb
+++ b/vendor/built_in_modules/page_content/app/views/panel/page_content/back_end/page_contexts/_modal_preview.html.erb
@@ -3,7 +3,7 @@
@@ -20,7 +20,7 @@
diff --git a/vendor/built_in_modules/personal_book/app/views/panel/personal_book/back_end/writing_books/_form.html.erb b/vendor/built_in_modules/personal_book/app/views/panel/personal_book/back_end/writing_books/_form.html.erb
index 7cec450f..cb6f342f 100644
--- a/vendor/built_in_modules/personal_book/app/views/panel/personal_book/back_end/writing_books/_form.html.erb
+++ b/vendor/built_in_modules/personal_book/app/views/panel/personal_book/back_end/writing_books/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @author_types.each do |author_type| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
@@ -27,7 +27,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_book/app/views/panel/personal_book/back_end/writing_books/_writing_book.html.erb b/vendor/built_in_modules/personal_book/app/views/panel/personal_book/back_end/writing_books/_writing_book.html.erb
index 52bf1467..7abee4b0 100644
--- a/vendor/built_in_modules/personal_book/app/views/panel/personal_book/back_end/writing_books/_writing_book.html.erb
+++ b/vendor/built_in_modules/personal_book/app/views/panel/personal_book/back_end/writing_books/_writing_book.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || writing_book.writing_book_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_book_back_end_writing_book_path(writing_book) %>
- <%= link_to t('delete'), panel_personal_book_back_end_writing_book_path(writing_book), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_book_back_end_writing_book_path(writing_book), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_book/app/views/panel/personal_book/plugin/writing_books/_form.html.erb b/vendor/built_in_modules/personal_book/app/views/panel/personal_book/plugin/writing_books/_form.html.erb
index 8b0d0132..f9cd05f0 100644
--- a/vendor/built_in_modules/personal_book/app/views/panel/personal_book/plugin/writing_books/_form.html.erb
+++ b/vendor/built_in_modules/personal_book/app/views/panel/personal_book/plugin/writing_books/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @author_types.each do |author_type| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
@@ -27,7 +27,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_book/app/views/panel/personal_book/plugin/writing_books/_writing_book.html.erb b/vendor/built_in_modules/personal_book/app/views/panel/personal_book/plugin/writing_books/_writing_book.html.erb
index 81c11fa7..179d0f66 100644
--- a/vendor/built_in_modules/personal_book/app/views/panel/personal_book/plugin/writing_books/_writing_book.html.erb
+++ b/vendor/built_in_modules/personal_book/app/views/panel/personal_book/plugin/writing_books/_writing_book.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || writing_book.writing_book_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_book_plugin_writing_book_path(writing_book) %>
- <%= link_to t('delete'), panel_personal_book_plugin_writing_book_path(writing_book), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_book_plugin_writing_book_path(writing_book), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_book/init.rb b/vendor/built_in_modules/personal_book/init.rb
index dc49113a..d0798631 100644
--- a/vendor/built_in_modules/personal_book/init.rb
+++ b/vendor/built_in_modules/personal_book/init.rb
@@ -16,7 +16,7 @@ end
# :active_for_controllers=> ['news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals'],
# :active_for_ob_auths_object => ['NewsBulletinCategory'],
# :head_link => panel_news_back_end_news_bulletins_path ,
-# :head_label=> I18n.t('admin.news')
+# :head_label=> I18n.t(:news)
# context_link :link=>new_panel_news_back_end_news_bulletin_path ,
# :priority=>1,:label=>I18n.t('announcement.add_new'),
diff --git a/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/back_end/diplomas/_diploma.html.erb b/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/back_end/diplomas/_diploma.html.erb
index 0b5d2c6f..1f686523 100644
--- a/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/back_end/diplomas/_diploma.html.erb
+++ b/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/back_end/diplomas/_diploma.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || diploma.diploma_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_diploma_back_end_diploma_path(diploma) %>
- <%= link_to t('delete'), panel_personal_diploma_back_end_diploma_path(diploma), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_diploma_back_end_diploma_path(diploma), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/back_end/diplomas/_form.html.erb b/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/back_end/diplomas/_form.html.erb
index 481173b7..45e207e8 100644
--- a/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/back_end/diplomas/_form.html.erb
+++ b/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/back_end/diplomas/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/plugin/diplomas/_diploma.html.erb b/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/plugin/diplomas/_diploma.html.erb
index 431274e8..3fa95c9e 100644
--- a/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/plugin/diplomas/_diploma.html.erb
+++ b/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/plugin/diplomas/_diploma.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || diploma.diploma_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_diploma_plugin_diploma_path(diploma) %>
- <%= link_to t('delete'), panel_personal_diploma_plugin_diploma_path(diploma), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_diploma_plugin_diploma_path(diploma), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/plugin/diplomas/_form.html.erb b/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/plugin/diplomas/_form.html.erb
index 881302d9..9dd062d2 100644
--- a/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/plugin/diplomas/_form.html.erb
+++ b/vendor/built_in_modules/personal_diploma/app/views/panel/personal_diploma/plugin/diplomas/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_diploma/init.rb b/vendor/built_in_modules/personal_diploma/init.rb
index 5f5f61f2..636d951b 100644
--- a/vendor/built_in_modules/personal_diploma/init.rb
+++ b/vendor/built_in_modules/personal_diploma/init.rb
@@ -16,7 +16,7 @@ end
# :active_for_controllers=> ['news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals'],
# :active_for_ob_auths_object => ['NewsBulletinCategory'],
# :head_link => panel_news_back_end_news_bulletins_path ,
-# :head_label=> I18n.t('admin.news')
+# :head_label=> I18n.t(:news)
# context_link :link=>new_panel_news_back_end_news_bulletin_path ,
# :priority=>1,:label=>I18n.t('announcement.add_new'),
diff --git a/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/back_end/experiences/_experience.html.erb b/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/back_end/experiences/_experience.html.erb
index 9ae44ddb..b1aa1bd1 100644
--- a/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/back_end/experiences/_experience.html.erb
+++ b/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/back_end/experiences/_experience.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || experience.experience_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_experience_back_end_experience_path(experience) %>
- <%= link_to t('delete'), panel_personal_experience_back_end_experience_path(experience), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_experience_back_end_experience_path(experience), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/back_end/experiences/_form.html.erb b/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/back_end/experiences/_form.html.erb
index 7989dda8..f275c346 100644
--- a/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/back_end/experiences/_form.html.erb
+++ b/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/back_end/experiences/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/plugin/experiences/_experience.html.erb b/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/plugin/experiences/_experience.html.erb
index 182d6c84..15299f2d 100644
--- a/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/plugin/experiences/_experience.html.erb
+++ b/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/plugin/experiences/_experience.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || experience.experience_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_experience_plugin_experience_path(experience) %>
- <%= link_to t('delete'), panel_personal_experience_plugin_experience_path(experience), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_experience_plugin_experience_path(experience), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/plugin/experiences/_form.html.erb b/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/plugin/experiences/_form.html.erb
index 9e734b30..f2156d5c 100644
--- a/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/plugin/experiences/_form.html.erb
+++ b/vendor/built_in_modules/personal_experience/app/views/panel/personal_experience/plugin/experiences/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_experience/init.rb b/vendor/built_in_modules/personal_experience/init.rb
index 67eafc10..37ad178c 100644
--- a/vendor/built_in_modules/personal_experience/init.rb
+++ b/vendor/built_in_modules/personal_experience/init.rb
@@ -16,7 +16,7 @@ end
# :active_for_controllers=> ['news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals'],
# :active_for_ob_auths_object => ['NewsBulletinCategory'],
# :head_link => panel_news_back_end_news_bulletins_path ,
-# :head_label=> I18n.t('admin.news')
+# :head_label=> I18n.t(:news)
# context_link :link=>new_panel_news_back_end_news_bulletin_path ,
# :priority=>1,:label=>I18n.t('announcement.add_new'),
diff --git a/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/back_end/honors/_form.html.erb b/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/back_end/honors/_form.html.erb
index 0ce7b634..f0bdcf51 100644
--- a/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/back_end/honors/_form.html.erb
+++ b/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/back_end/honors/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/back_end/honors/_honor.html.erb b/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/back_end/honors/_honor.html.erb
index 5d62e8e8..a8494999 100644
--- a/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/back_end/honors/_honor.html.erb
+++ b/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/back_end/honors/_honor.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || honor.honor_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_honor_back_end_honor_path(honor) %>
- <%= link_to t('delete'), panel_personal_honor_back_end_honor_path(honor), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_honor_back_end_honor_path(honor), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/plugin/honors/_form.html.erb b/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/plugin/honors/_form.html.erb
index a8e13d91..99761d82 100644
--- a/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/plugin/honors/_form.html.erb
+++ b/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/plugin/honors/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/plugin/honors/_honor.html.erb b/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/plugin/honors/_honor.html.erb
index e7736d8e..349f18d6 100644
--- a/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/plugin/honors/_honor.html.erb
+++ b/vendor/built_in_modules/personal_honor/app/views/panel/personal_honor/plugin/honors/_honor.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || honor.honor_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_honor_plugin_honor_path(honor) %>
- <%= link_to t('delete'), panel_personal_honor_plugin_honor_path(honor), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_honor_plugin_honor_path(honor), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_honor/init.rb b/vendor/built_in_modules/personal_honor/init.rb
index 4eabf85c..5d30556e 100644
--- a/vendor/built_in_modules/personal_honor/init.rb
+++ b/vendor/built_in_modules/personal_honor/init.rb
@@ -16,7 +16,7 @@ end
# :active_for_controllers=> ['news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals'],
# :active_for_ob_auths_object => ['NewsBulletinCategory'],
# :head_link => panel_news_back_end_news_bulletins_path ,
-# :head_label=> I18n.t('admin.news')
+# :head_label=> I18n.t(:news)
# context_link :link=>new_panel_news_back_end_news_bulletin_path ,
# :priority=>1,:label=>I18n.t('announcement.add_new'),
diff --git a/vendor/built_in_modules/personal_journal/app/models/writing_journal.rb b/vendor/built_in_modules/personal_journal/app/models/writing_journal.rb
index 49dc0015..f9127758 100644
--- a/vendor/built_in_modules/personal_journal/app/models/writing_journal.rb
+++ b/vendor/built_in_modules/personal_journal/app/models/writing_journal.rb
@@ -35,9 +35,26 @@ class WritingJournal
accepts_nested_attributes_for :writing_journal_files, :allow_destroy => true
after_save :save_writing_journal_files
before_validation :add_http
+ before_save :save_co_author
validates :paper_title, :at_least_one => true
validates :url, :format => /^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix, :unless => Proc.new{self.url.blank?}
+ def save_co_author
+ authors_list = authors.split(",").map{|n| n.strip.gsub(/\s+/," ")}.reject{|n| n.empty? }
+ if new_record?
+ current_user = create_user_id
+ else
+ current_user = update_user_id
+ end
+
+ authors_db = CoAuthor.where(:name_id => current_user).map(&:co_author)
+ authors_list.delete(User.find(current_user).name)
+ authors_list = authors_list.delete_if{|author| authors_db.include?author}
+ authors_list.each do |author|
+ CoAuthor.new(:co_author => author, :name_id => current_user).save
+ end
+ end
+
def self.search( category_id = nil )
if category_id.to_s.size > 0
find(:all, :conditions => {writing_journal_category_id: category_id}).desc( :is_top, :title )
diff --git a/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/back_end/writing_journals/_form.html.erb b/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/back_end/writing_journals/_form.html.erb
index 04127002..6f767502 100644
--- a/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/back_end/writing_journals/_form.html.erb
+++ b/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/back_end/writing_journals/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<%= f.text_area :abstract, :size => "60x3" %>
@@ -20,7 +20,7 @@
-
+
<%= f.text_area :note, :size => "60x3" %>
@@ -31,7 +31,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/back_end/writing_journals/_writing_journal.html.erb b/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/back_end/writing_journals/_writing_journal.html.erb
index 13382cc3..1475b1a0 100644
--- a/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/back_end/writing_journals/_writing_journal.html.erb
+++ b/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/back_end/writing_journals/_writing_journal.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || writing_journal.writing_journal_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_journal_back_end_writing_journal_path(writing_journal) %>
- <%= link_to t('delete'), panel_personal_journal_back_end_writing_journal_path(writing_journal), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_journal_back_end_writing_journal_path(writing_journal), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/plugin/writing_journals/_form.html.erb b/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/plugin/writing_journals/_form.html.erb
index a2502adb..b60bcd59 100644
--- a/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/plugin/writing_journals/_form.html.erb
+++ b/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/plugin/writing_journals/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @level_types.each do |level_type| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
@@ -26,7 +26,7 @@
-
+
<% @author_types.each do |author_type| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
@@ -43,7 +43,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/plugin/writing_journals/_writing_journal.html.erb b/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/plugin/writing_journals/_writing_journal.html.erb
index 7af8f37b..ad0b7017 100644
--- a/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/plugin/writing_journals/_writing_journal.html.erb
+++ b/vendor/built_in_modules/personal_journal/app/views/panel/personal_journal/plugin/writing_journals/_writing_journal.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || writing_journal.writing_journal_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_journal_plugin_writing_journal_path(writing_journal) %>
- <%= link_to t('delete'), panel_personal_journal_plugin_writing_journal_path(writing_journal), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_journal_plugin_writing_journal_path(writing_journal), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_journal/init.rb b/vendor/built_in_modules/personal_journal/init.rb
index bdba532e..822913e3 100644
--- a/vendor/built_in_modules/personal_journal/init.rb
+++ b/vendor/built_in_modules/personal_journal/init.rb
@@ -16,7 +16,7 @@ end
# :active_for_controllers=> ['news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals'],
# :active_for_ob_auths_object => ['NewsBulletinCategory'],
# :head_link => panel_news_back_end_news_bulletins_path ,
-# :head_label=> I18n.t('admin.news')
+# :head_label=> I18n.t(:news)
# context_link :link=>new_panel_news_back_end_news_bulletin_path ,
# :priority=>1,:label=>I18n.t('announcement.add_new'),
diff --git a/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/back_end/labs/_form.html.erb b/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/back_end/labs/_form.html.erb
index 8fce24c1..a0dc233d 100644
--- a/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/back_end/labs/_form.html.erb
+++ b/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/back_end/labs/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/back_end/labs/_lab.html.erb b/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/back_end/labs/_lab.html.erb
index c47dd5ec..82f6ef49 100644
--- a/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/back_end/labs/_lab.html.erb
+++ b/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/back_end/labs/_lab.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || lab.lab_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_lab_back_end_lab_path(lab) %>
- <%= link_to t('delete'), panel_personal_lab_back_end_lab_path(lab), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_lab_back_end_lab_path(lab), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/plugin/labs/_form.html.erb b/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/plugin/labs/_form.html.erb
index 2100ea79..68ef9b97 100644
--- a/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/plugin/labs/_form.html.erb
+++ b/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/plugin/labs/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/plugin/labs/_lab.html.erb b/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/plugin/labs/_lab.html.erb
index 9e3664cf..ecc38d0f 100644
--- a/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/plugin/labs/_lab.html.erb
+++ b/vendor/built_in_modules/personal_lab/app/views/panel/personal_lab/plugin/labs/_lab.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || lab.lab_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_lab_plugin_lab_path(lab) %>
- <%= link_to t('delete'), panel_personal_lab_plugin_lab_path(lab), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_lab_plugin_lab_path(lab), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_lab/init.rb b/vendor/built_in_modules/personal_lab/init.rb
index 146b3353..a0951853 100644
--- a/vendor/built_in_modules/personal_lab/init.rb
+++ b/vendor/built_in_modules/personal_lab/init.rb
@@ -16,7 +16,7 @@ end
# :active_for_controllers=> ['news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals'],
# :active_for_ob_auths_object => ['NewsBulletinCategory'],
# :head_link => panel_news_back_end_news_bulletins_path ,
-# :head_label=> I18n.t('admin.news')
+# :head_label=> I18n.t(:news)
# context_link :link=>new_panel_news_back_end_news_bulletin_path ,
# :priority=>1,:label=>I18n.t('announcement.add_new'),
diff --git a/vendor/built_in_modules/personal_patent/app - %BDƻs/views/panel/personal_patent/back_end/writing_patents/_form.html.erb b/vendor/built_in_modules/personal_patent/app - %BDƻs/views/panel/personal_patent/back_end/writing_patents/_form.html.erb
index d2df7970..d92f08fc 100644
--- a/vendor/built_in_modules/personal_patent/app - %BDƻs/views/panel/personal_patent/back_end/writing_patents/_form.html.erb
+++ b/vendor/built_in_modules/personal_patent/app - %BDƻs/views/panel/personal_patent/back_end/writing_patents/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_patent/app - %BDƻs/views/panel/personal_patent/plugin/writing_patents/_form.html.erb b/vendor/built_in_modules/personal_patent/app - %BDƻs/views/panel/personal_patent/plugin/writing_patents/_form.html.erb
index d2df7970..d92f08fc 100644
--- a/vendor/built_in_modules/personal_patent/app - %BDƻs/views/panel/personal_patent/plugin/writing_patents/_form.html.erb
+++ b/vendor/built_in_modules/personal_patent/app - %BDƻs/views/panel/personal_patent/plugin/writing_patents/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/back_end/writing_patents/_form.html.erb b/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/back_end/writing_patents/_form.html.erb
index 9ac672a4..372e8a56 100644
--- a/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/back_end/writing_patents/_form.html.erb
+++ b/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/back_end/writing_patents/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/back_end/writing_patents/_writing_patent.html.erb b/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/back_end/writing_patents/_writing_patent.html.erb
index f0257dd6..b9cb189b 100644
--- a/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/back_end/writing_patents/_writing_patent.html.erb
+++ b/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/back_end/writing_patents/_writing_patent.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || writing_patent.writing_patent_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_patent_back_end_writing_patent_path(writing_patent) %>
- <%= link_to t('delete'), panel_personal_patent_back_end_writing_patent_path(writing_patent), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_patent_back_end_writing_patent_path(writing_patent), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/plugin/writing_patents/_form.html.erb b/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/plugin/writing_patents/_form.html.erb
index de318a70..8306b6be 100644
--- a/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/plugin/writing_patents/_form.html.erb
+++ b/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/plugin/writing_patents/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/plugin/writing_patents/_writing_patent.html.erb b/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/plugin/writing_patents/_writing_patent.html.erb
index 25d2f73f..32b83af9 100644
--- a/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/plugin/writing_patents/_writing_patent.html.erb
+++ b/vendor/built_in_modules/personal_patent/app/views/panel/personal_patent/plugin/writing_patents/_writing_patent.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || writing_patent.writing_patent_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_patent_plugin_writing_patent_path(writing_patent) %>
- <%= link_to t('delete'), panel_personal_patent_plugin_writing_patent_path(writing_patent), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_patent_plugin_writing_patent_path(writing_patent), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_patent/init.rb b/vendor/built_in_modules/personal_patent/init.rb
index 112777a7..7114e651 100644
--- a/vendor/built_in_modules/personal_patent/init.rb
+++ b/vendor/built_in_modules/personal_patent/init.rb
@@ -16,7 +16,7 @@ end
# :active_for_controllers=> ['news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals'],
# :active_for_ob_auths_object => ['NewsBulletinCategory'],
# :head_link => panel_news_back_end_news_bulletins_path ,
-# :head_label=> I18n.t('admin.news')
+# :head_label=> I18n.t(:news)
# context_link :link=>new_panel_news_back_end_news_bulletin_path ,
# :priority=>1,:label=>I18n.t('announcement.add_new'),
diff --git a/vendor/built_in_modules/personal_project/app/views/panel/personal_project/back_end/projects/_form.html.erb b/vendor/built_in_modules/personal_project/app/views/panel/personal_project/back_end/projects/_form.html.erb
index 8c33836b..9f6612db 100644
--- a/vendor/built_in_modules/personal_project/app/views/panel/personal_project/back_end/projects/_form.html.erb
+++ b/vendor/built_in_modules/personal_project/app/views/panel/personal_project/back_end/projects/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_project/app/views/panel/personal_project/back_end/projects/_project.html.erb b/vendor/built_in_modules/personal_project/app/views/panel/personal_project/back_end/projects/_project.html.erb
index 0706841b..539b1535 100644
--- a/vendor/built_in_modules/personal_project/app/views/panel/personal_project/back_end/projects/_project.html.erb
+++ b/vendor/built_in_modules/personal_project/app/views/panel/personal_project/back_end/projects/_project.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || project.project_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_project_back_end_project_path(project) %>
- <%= link_to t('delete'), panel_personal_project_back_end_project_path(project), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_project_back_end_project_path(project), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_project/app/views/panel/personal_project/plugin/projects/_form.html.erb b/vendor/built_in_modules/personal_project/app/views/panel/personal_project/plugin/projects/_form.html.erb
index c2dd1c80..85ff54df 100644
--- a/vendor/built_in_modules/personal_project/app/views/panel/personal_project/plugin/projects/_form.html.erb
+++ b/vendor/built_in_modules/personal_project/app/views/panel/personal_project/plugin/projects/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_project/app/views/panel/personal_project/plugin/projects/_project.html.erb b/vendor/built_in_modules/personal_project/app/views/panel/personal_project/plugin/projects/_project.html.erb
index 714bd517..8b678a3f 100644
--- a/vendor/built_in_modules/personal_project/app/views/panel/personal_project/plugin/projects/_project.html.erb
+++ b/vendor/built_in_modules/personal_project/app/views/panel/personal_project/plugin/projects/_project.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || project.project_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_project_plugin_project_path(project) %>
- <%= link_to t('delete'), panel_personal_project_plugin_project_path(project), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_project_plugin_project_path(project), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_project/init.rb b/vendor/built_in_modules/personal_project/init.rb
index 633ed0ac..2370b5ef 100644
--- a/vendor/built_in_modules/personal_project/init.rb
+++ b/vendor/built_in_modules/personal_project/init.rb
@@ -16,7 +16,7 @@ end
# :active_for_controllers=> ['news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals'],
# :active_for_ob_auths_object => ['NewsBulletinCategory'],
# :head_link => panel_news_back_end_news_bulletins_path ,
-# :head_label=> I18n.t('admin.news')
+# :head_label=> I18n.t(:news)
# context_link :link=>new_panel_news_back_end_news_bulletin_path ,
# :priority=>1,:label=>I18n.t('announcement.add_new'),
diff --git a/vendor/built_in_modules/personal_research/app/views/panel/personal_research/back_end/researchs/_form.html.erb b/vendor/built_in_modules/personal_research/app/views/panel/personal_research/back_end/researchs/_form.html.erb
index 1e030838..4f6f139b 100644
--- a/vendor/built_in_modules/personal_research/app/views/panel/personal_research/back_end/researchs/_form.html.erb
+++ b/vendor/built_in_modules/personal_research/app/views/panel/personal_research/back_end/researchs/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_research/app/views/panel/personal_research/back_end/researchs/_research.html.erb b/vendor/built_in_modules/personal_research/app/views/panel/personal_research/back_end/researchs/_research.html.erb
index f78b8e05..82f94e01 100644
--- a/vendor/built_in_modules/personal_research/app/views/panel/personal_research/back_end/researchs/_research.html.erb
+++ b/vendor/built_in_modules/personal_research/app/views/panel/personal_research/back_end/researchs/_research.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || research.research_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_research_back_end_research_path(research) %>
- <%= link_to t('delete'), panel_personal_research_back_end_research_path(research), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_research_back_end_research_path(research), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_research/app/views/panel/personal_research/plugin/researchs/_form.html.erb b/vendor/built_in_modules/personal_research/app/views/panel/personal_research/plugin/researchs/_form.html.erb
index 2d9a02ac..0b3cefdc 100644
--- a/vendor/built_in_modules/personal_research/app/views/panel/personal_research/plugin/researchs/_form.html.erb
+++ b/vendor/built_in_modules/personal_research/app/views/panel/personal_research/plugin/researchs/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_research/app/views/panel/personal_research/plugin/researchs/_research.html.erb b/vendor/built_in_modules/personal_research/app/views/panel/personal_research/plugin/researchs/_research.html.erb
index 2436ade3..8949f48b 100644
--- a/vendor/built_in_modules/personal_research/app/views/panel/personal_research/plugin/researchs/_research.html.erb
+++ b/vendor/built_in_modules/personal_research/app/views/panel/personal_research/plugin/researchs/_research.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || research.research_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_research_plugin_research_path(research) %>
- <%= link_to t('delete'), panel_personal_research_plugin_research_path(research), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_research_plugin_research_path(research), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_research/init.rb b/vendor/built_in_modules/personal_research/init.rb
index 18bc59f6..ca9cd058 100644
--- a/vendor/built_in_modules/personal_research/init.rb
+++ b/vendor/built_in_modules/personal_research/init.rb
@@ -16,7 +16,7 @@ end
# :active_for_controllers=> ['news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals'],
# :active_for_ob_auths_object => ['NewsBulletinCategory'],
# :head_link => panel_news_back_end_news_bulletins_path ,
-# :head_label=> I18n.t('admin.news')
+# :head_label=> I18n.t(:news)
# context_link :link=>new_panel_news_back_end_news_bulletin_path ,
# :priority=>1,:label=>I18n.t('announcement.add_new'),
diff --git a/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/back_end/writing_seminars/_form.html.erb b/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/back_end/writing_seminars/_form.html.erb
index 00a30b3f..2f045c9b 100644
--- a/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/back_end/writing_seminars/_form.html.erb
+++ b/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/back_end/writing_seminars/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @paper_types.each do |paper_type| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
@@ -26,7 +26,7 @@
-
+
<% @author_types.each do |author_type| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
@@ -43,7 +43,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/back_end/writing_seminars/_writing_seminar.html.erb b/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/back_end/writing_seminars/_writing_seminar.html.erb
index 0814f76d..b9571826 100644
--- a/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/back_end/writing_seminars/_writing_seminar.html.erb
+++ b/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/back_end/writing_seminars/_writing_seminar.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || writing_seminar.writing_seminar_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_seminar_back_end_writing_seminar_path(writing_seminar) %>
- <%= link_to t('delete'), panel_personal_seminar_back_end_writing_seminar_path(writing_seminar), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_seminar_back_end_writing_seminar_path(writing_seminar), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/plugin/writing_seminars/_form.html.erb b/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/plugin/writing_seminars/_form.html.erb
index 948e54fa..7d80998a 100644
--- a/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/plugin/writing_seminars/_form.html.erb
+++ b/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/plugin/writing_seminars/_form.html.erb
@@ -10,7 +10,7 @@
-
+
<% @paper_types.each do |paper_type| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
@@ -26,7 +26,7 @@
-
+
<% @author_types.each do |author_type| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
@@ -43,7 +43,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/plugin/writing_seminars/_writing_seminar.html.erb b/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/plugin/writing_seminars/_writing_seminar.html.erb
index be2d983d..8d001c47 100644
--- a/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/plugin/writing_seminars/_writing_seminar.html.erb
+++ b/vendor/built_in_modules/personal_seminar/app/views/panel/personal_seminar/plugin/writing_seminars/_writing_seminar.html.erb
@@ -11,7 +11,7 @@
<%if at_least_module_manager || writing_seminar.writing_seminar_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_personal_seminar_plugin_writing_seminar_path(writing_seminar) %>
- <%= link_to t('delete'), panel_personal_seminar_plugin_writing_seminar_path(writing_seminar), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_personal_seminar_plugin_writing_seminar_path(writing_seminar), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>
diff --git a/vendor/built_in_modules/personal_seminar/init.rb b/vendor/built_in_modules/personal_seminar/init.rb
index 1bd9e9d0..6cb9829f 100644
--- a/vendor/built_in_modules/personal_seminar/init.rb
+++ b/vendor/built_in_modules/personal_seminar/init.rb
@@ -16,7 +16,7 @@ end
# :active_for_controllers=> ['news_bulletins', '/panel/news/back_end/tags', 'news_bulletin_categorys', 'news_approvals'],
# :active_for_ob_auths_object => ['NewsBulletinCategory'],
# :head_link => panel_news_back_end_news_bulletins_path ,
-# :head_label=> I18n.t('admin.news')
+# :head_label=> I18n.t(:news)
# context_link :link=>new_panel_news_back_end_news_bulletin_path ,
# :priority=>1,:label=>I18n.t('announcement.add_new'),
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_form.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_form.html.erb
index 4abd3d9a..4ce2d2ed 100644
--- a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_form.html.erb
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_form.html.erb
@@ -11,7 +11,7 @@
-
+
<%= content_tag :label,:class => "checkbox inline" do -%>
@@ -34,7 +34,7 @@
-
+
<% @tags.each do |tag| %>
<%= content_tag :label,:class => "checkbox inline" do -%>
diff --git a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_web_link.html.erb b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_web_link.html.erb
index 2e4ef99d..7032d761 100644
--- a/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_web_link.html.erb
+++ b/vendor/built_in_modules/web_resource/app/views/panel/web_resource/back_end/web_links/_web_link.html.erb
@@ -26,7 +26,7 @@
<%if at_least_module_manager || web_link.web_link_category.cur_user_is_sub_manager_of(:edit)%>
<%= link_to t('edit'), edit_panel_web_resource_back_end_web_link_path(web_link) %>
- <%= link_to t('delete'), panel_web_resource_back_end_web_link_path(web_link), :confirm => t('sure?'), :method => :delete, :remote => true %>
+ <%= link_to t(:delete_), panel_web_resource_back_end_web_link_path(web_link), :confirm => t('sure?'), :method => :delete, :remote => true %>
<% end -%>