Concept "Controlled, faceted, multilateral, asynchronous, bidirectional synchronisation of multiple SMWs (CFMABS)"

From SMW CindyKate - Main
Component 601228
Jump to: navigation, search

Content


CFMABS Idea and Rationale

We want to share terminological and assertional content between SMWs like this:

  1. Controlled
  2. Faceted
  3. Multilateral (between more than 2 SMWs)
  4. Asynchronous (content exchange can happen at any time in any order)
  5. Bidirectional (no such thing as "master" SMWs)
  6. Synchronisation

in a way that is:

  1. conscient
  2. repeatable/idempotent
  3. reusable
  4. reversible/rollback
  5. comprehensible/logged
  6. supporting error recovery

Separation of concerns

  1. SMW content is smartly exported/imported to/from text files into/from a folder by the use of a third-party application.
    • "Smart" means that the SMWs, folders and pages (wikitext and metadata) involved remember all the information necessary to implement above mentioned "conscient, repeatable/idempotent, reusable, reversible, comprehensible/logged, supporting error recovery".
  2. That folder is then put under version control.

Ontology Profiling

Step 1: Check categories in Category:METACategory

Meta categories are used for managing 3OM-Ontologies. See Category:METACategory.

# Management Script "ontology_profiling.rb"

meta_categories = SMWCindyKate::Pages.new(@profile, @content_reference.smw_identifier, @options)
meta_categories.from_NAMESPACES(:Category)
meta_categories.having_WIKITEXT_matching_regex('.*Category.*:.*METACategory.*')
SMWCindyKate.set_pages(meta_categories)

Step 2: 3OM-Ontologies always make use of a top-level ontology

See Category:3OM-TopLevelOntology.

# Management Script "ontology_profiling.rb"

three_om_top_level_ontology_elements = SMWCindyKate::Pages.new(@profile, @content_reference.smw_identifier, @options)
three_om_top_level_ontology_elements.from_CATEGORIES([ # list=categorymembers covers all namespaces!
  'Category:3OM-TopLevelOntology-Category',
  'Category:3OM-TopLevelOntology-Property',
  'Category:3OM-TopLevelOntology-Template',
  'Category:3OM-TopLevelOntology-Form',
  'Category:3OM-TopLevelOntology-Concept',
  'Category:3OM-TopLevelOntology-Widget',
  'Category:3OM-TopLevelOntology-Module'
])
SMWCindyKate.set_pages(three_om_top_level_ontology_elements)

Exporting

See Use Case "Extract SMW pages to text files".

smw-cindykate -p ~/profile.yml content extract "smwck_restored#~/management_scripts/ontology_profiling.rb" ~/3OM-TopLevelOntology