#
# Project configuration
#
# Environment specific settings can be overridden in:
# /config/settings/<environment>.yml
# 

# Name of the installation
name: "MyOntohub"

# Hostname of the installation
hostname: #nil - overwrite in the settings.local.yml

# Generalizing term "Ontology",ALternatives are M:Models and S:Specification
OMS: ontology
# In case of Model,this should be used.
OMS_qualifier: modeling

# Optional asset host for delivery of static files (css, images, javascripts)
# asset_host: assets.example.com

# Sender address for outgoing mail.
# The host will be appended automatically if it does not contain an @ character.
email: noreply

# Mail delivery
# http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration
action_mailer:
  # possible values for delivery_method (see ActionMailer documentation):
  # :smtp, :sendmail, :file, :test
  delivery_method: :sendmail
  perform_deliveries: true
  raise_delivery_errors: true
  smtp_settings:
    address: 'mail'
    port: 25
    # Supply the fully qualified domain name in the settings.local.yml at:
    domain: # nil
    enable_starttls_auto: true
    password: # nil
    authentication: # nil

# The number of days a user can access
# the website without confirming his account.
allow_unconfirmed_access_for_days: 3

# Limits for displaying file contents and diffs
max_read_filesize: 524_288
max_combined_diff_size: 1_048_576

# Timeout for ontology parsing jobs in hours
ontology_parse_timeout: 6

asynchronous_execution:
  # possible values for log level (in ascending order of verbosity):
  # UNKNOWN, FATAL, ERROR, WARN, INFO, DEBUG
  log_level: WARN

# Footer links and texts
footer:
  - text: Foo Institute
  - text: About
    href: http://about.example.com

# Delivery of exceptions, disabled by default
exception_notifier:
  enabled: false
  email_prefix: "[ontohub exception]"
  sender_address: "exceptions@example.com"
  exception_recipients:
    - exception-recipient@example.com

# The following paths can be absolute paths
# or relative paths (relative to the project root)
paths:
  # General data.
  data: data
  # git repositories (names of repositories are numbers/ids)
  git_repositories: # nil - then data/repositories is used
  # named symlinks to the git repositories for git_daemon (only public)
  git_daemon:  # nil - then data/git_daemon is used
  # named symlinks to the git repositories for git-ssh (all repositories)
  git_ssh:  # nil - then data/git_ssh is used
  # cache for files that needed to be checked out from the git repositories
  commits: # nil - then data/commits is used

redis:
  url: redis://127.0.0.1:6379
  namespace: ontohub

hets:
  # This is the path to the hets executable we use in `rake hets:*` and for the
  # process manager in production mode (god)
  executable_path: /usr/bin/hets
  # The port to use in the testing framework to generate fixture files.
  # This is not used in the "production" and "development" environments, but
  # only in the "test" environment.
  testing_port: 8010
  # The URLs to the hets instances without trailing slash.
  # The number of instances is not allowed to be greater than the number of
  # hardware processor cores.
  instance_urls:
    - http://localhost:8000
  # The time between update-checks of registered hets-instances in minutes
  time_between_updates: 360

git:
  verify_url: http://localhost
  default_branch: 'master'
  push_priority:
    commits: 1
    changed_files_per_commit: 5
  fallbacks:
    committer_name: 'ontohub_system'
    committer_email: 'ontohub_system@ontohub.org'

# The name of the repository in which the externally imported ontology files are
# saved.
external_repository_name: 'External'

access_token:
  expiration_minutes: 360

allowed_iri_schemes:
  - http
  - https
  - file
  - gopher
  - urn

display_head_commit: false
display_symbols_tab: false

format_selection: false

# Your secret key for verifying the integrity of signed cookies.
# If you change this key, all old signed cookies will become invalid!
# Make sure the secret is at least 64 characters and all random,
# no regular words or you'll be exposed to dictionary attacks.
#
# This is just an example value.
# Overwrite this in your settings.local.yml or settings/production.local.yml!
secret_token: '6b198bfe3759ee41524d3a0d7547890a2d277f44f2ce472921ced9bac1833830028bbcacf58fdac0b482265042baa8df4de86a86ad63711ef5b50f70e57d5a07'

# Possible values for metadata, adapted from OMV
formality_levels:
  - name: vocabulary 
    description: "list of words"
  - name: terminology
    description: "list of concepts with definitions"
  - name: taxonomy
    description: "terminology with subsumption hierarchy"
  - name: axiomatization
    description: "ontology with axioms beyond a pure subsumption hierarchy"
    # number of axioms per concept can be displayed

license_models:
  - name: Apple Public Source License (APSL)
    url: http://www.opensource.apple.com/license/apsl/
  - name: Open Software License (OSL)
    url: http://opensource.org/licenses/OSL-3.0
  - name: General Public License (GPL)
    url: http://www.gnu.org/licenses/gpl.html
  - name: IBM Public License (IBM PL)
    url: http://opensource.org/licenses/IPL-1.0
  - name: Common Public License (CPL)
    url: http://www.eclipse.org/legal/cpl-v10.html
  - name: Lesser General Public License (LGPL)
    url: https://www.gnu.org/licenses/lgpl.html
  - name: INTEL Open Source License (INTEL OSL)
    url: http://opensource.org/licenses/Intel
  - name: Modified BSD License (mBSD)
    url: http://opensource.org/licenses/BSD-3-Clause
  - name: Academic Free License (AFL)
    url: http://opensource.org/licenses/AFL-3.0

ontology_types:
  - name: Upper Level Ontology
    description: describes general, domain-independent concepts e.g. space, time
    documentation: http://www.example.com
  - name: Core Ontology
    description: "describes the most important concepts in a specific domain (also: mid-level ontology)"
    documentation: http://www.example.com
  - name: Domain Ontology
    description: describes some domain of the world
    documentation: http://www.example.com
  - name: Application Ontology
    description: describes some domain in an application-dependent manner
    documentation: http://www.example.com

tasks:
  - name: SearchTask
    description: the task characterizes how ontologies are used to refine common keywordbased search algorithms using domain knowledge in form of subsumption relations. Ontology-driven search is usually performed automatically by means of reasoning services handling particular aspects of an ontology representation language.
  - name: AnnotationTask
    description: the ontology is used as a controlled vocabulary to annotate Semantic Web resources. This task includes the usage of a semantically rich ontology for representing arbitrarily complex annotation statements on these resources. The task can be performed manually or (semi-)automatically.
  - name: QueryRewritingTask
    description: complementary to the query formulation dimension, this task applies ontologies to semantically optimize query expressions by means of the domain knowledge (constraints, subsumption relations etc.) The task can be interpreted as a particular art of filtering information. The task is performed automatically; however, it assumes the availability of patterns describing the transformations at query level.
  - name: FilteringTask
    description: the task describes at a very general level how ontologies are applied to refine the solution space of a certain problem, such as information retrieval or personalization. The task is targeted at being performed semi-automatically or automatically.
  - name: IntegrationTask
    description: the task characterizes how ontologies provide an integrating environment, an inter-lingua, for information repositories or software tools. In this scenario the ontology is applied (semi-)automatically to merge between heterogeneous data pools in the same or in adjacent domains.
  - name: QueryFormulationTask
    description: the ontology is used in information retrieval settings as a controlled vocabulary for representing user queries. Usually the task is performed automatically in that the concepts of the ontology is are listed in a query formulation front-end in order to allow users to specifies their queries.
  - name: MediationTask
    description: the ontology is built to reduce the ambiguities between communicating human or machine agents. It can act as a normative model which formally and clearly defines the meaning of the terms employed in agent interactions. In the context of programmed agents, the task is envisioned to be performed automatically.
  - name: ConfigurationTask
    description: the ontology is designed to provide a controlled and unambiguous means to represent valid configuration profiles in application systems. As the aim of the ontology is to support the operationalization of particular system-related processes; this task is performed automatically in that the ontology is processed in an automatic manner by means of reasoners or APIs.
  - name: PersonalizationTask
    description: the ontology is used mainly for providing personalized access to information resources. Individual user preferences w.r.t. particular application settings are formally specified by means of an ontology, which, in conjunction with appropriate reasoning services, can be directly integrated to a personalization component for filtering purposes. The usage of ontologies in personalization tasks might be carried out in various forms, from a direct involvement of the user who manually specifies ontological concepts which optimally describe his preferences, to the ontological modelling of user profiles.
  - name: IndexingTask
    description: in this scenario, the goal of the ontology is to provide a clearly defined classification and browsing structure for the information items in a repository. Again, the task can be performed manually by domain experts or as part of an application in an automatic or semi-automatic way.
  - name: MatchingTask
    description: the goal of matching is to establish links between semantically similar data items in information repositories. In contrast to the previous task, matching does not include the production of a shared final schema/ontology as a result of aggregating the matched source elements to common elements. W.r.t. the automatization level the range varies from manual to fully-automatical execution.
