Providing an Effective Intranet Knowledge Base Using Linux and Open Source Software Presenters https://www.kbcasestudy.info Clay Wells :: Systems Programmer Sr., University of Pennsylvania Lance Barbour :: Systems Administrator, University of Florida Sept. 3 rd, 2009 :: Red Hat in Reality :: Strategize 1
:: Overview :: Introduction Definitions Concepts Roadmap System Setup Using MediaWiki Conclusion 2
:: Introduction :: Mission :: Apply concepts of a knowledge management Use a software development process as a roadmap Use RHEL (Red Hat Enterprise Linux) Use Apache (Webserver) Use MySQL (Database) Use PHP (scripting/programming language) - LAMP! Use MediaWiki 3
:: Introduction :: This IS Important! :: Knowledge & information that is easily accessible Provides a mechanism for sharing knowledge Facilitates individual growth Facilitates institutional learning 4
:: Overview :: Introduction Definitions Concepts Roadmap System Setup Using MediaWiki Conclusion 5
:: Definitions :: Knowledge Base :: A knowledge base is a special kind of database for knowledge management, providing the means for the computerized collection, organization, and retrieval of knowledge. http://en.wikipedia.org/wiki/knowledge_base 6
:: Definitions :: Knowledge Management :: Knowledge Management (KM) comprises a range of practices used in an organization to identify, create, represent, distribute and enable adoption of insights and experiences. Such insights and experiences comprise knowledge, either embodied in individuals or embedded in organizational processes or practice. http://en.wikipedia.org/wiki/knowledge_management 7
:: Definitions :: Knowledge Management System :: Knowledge Management System (KMS) refers to a (generally IT based) system for managing knowledge in organizations for supporting creation, capture, storage and dissemination of information. http://en.wikipedia.org/wiki/knowledge_management_system 8
:: Overview :: Introduction Definitions Concepts Roadmap System Setup Using MediaWiki Conclusion 9
:: Concepts :: Knowledge Base Components Knowledge Management Strategic Planning A Software Development Model 10
:: Concepts :: Knowledge Base :: Knowledge base components FAQ How-to Tutorial Best Practices White Papers 11
:: Concepts :: Knowledge Management :: "Knowledge management aims to manage the ways in which we create, discover, exploit, disseminate and retain the expertise, understanding and practical know-how that individuals and organizations possess. The Ark Group * Detailed KMS information beyond the scope of this paper http://www.ark-group.com 12
:: Concepts :: Types of Knowledge :: Tacit - Personal knowledge embedded in individual experience and involving intangible factors such as personal belief, perspective, instinct and values. Explicit - Knowledge that is articulated in formal language and easily transmitted among individuals. 13
:: Concepts :: Applications of Knowledge Mgmt :: Intermediation - brokering knowledge owner to knowledge seeker Externalization - capturing and categorizing knowledge Internalization - retrieving knowledge in a personal manner Cognition - applying knowledge to the business process 14
:: Concepts :: Strategic Planning :: 1. Where are we going? What is the long-term objective? What are some short-term goals? 2. How are we going to get there? Define a roadmap Implement LAMP & MediaWiki technologies 15
:: Concepts :: Strategic Planning (cont.) :: 3. Why use LAMP & MediaWiki? Very low cost for licensing and software Proven technology! Fully customizable Familiar interface Writing and retrieving documentation is very easy Built-in revision tracking and easy rollback The website framework already exists 16
:: Concepts :: Software Development Model :: A framework used to structure, plan, and control the process of developing software. Iterative and Incremental Model (Phases) Planning & Requirements Phase Design & Implementation Phase Testing Phase Evaluation Phase 17
:: Concepts :: Iterative Model :: 18
:: Overview :: Introduction Definitions Concepts Roadmap System Setup Using MediaWiki Conclusion 19
:: Roadmap :: Analyze & Plan Design & Review Implement Deployment & Maintenance 20
:: Roadmap :: Analyze & Plan :: What is useful knowledge for your company? Where is this knowledge? How is it stored and how can you get access to it? What information do users need? What information would users like? Access and other obstacles/challenges? Prioritize goals and objectives 21
:: Roadmap :: Design & Review :: Which knowledge base components will be implemented Define the Categories of knowledge Set milestones and timelines Have the goals and objectives been met? Ask a few users to review the plan & design Modify objectives and priorities as needed 22
:: Roadmap :: Implement :: Get to work! Stay focused on goals and objectives Get feedback as features are implemented Does anything need to be reviewed? Are the defined milestones being met? 23
:: Roadmap :: Deploy & Maintain :: Deploy any milestones Stay up-to-date with existing knowledge Add new knowledge when available Knowledge maintenance is key to success 24
:: Overview :: Introduction Definitions Concepts Roadmap System Setup Using MediaWiki Conclusion 25
:: System Setup :: LAMP Installing MediaWiki Customizing MediaWiki Extending MediaWiki Wiki Backup The Intranet 26
:: System Setup :: LAMP :: Install Apache, PHP, and MySQL in one step using yum. * yum is a Linux utility used to maintain RPM packages # yum install httpd php php-mysql mysql mysql-server 27
:: System Setup :: Apache :: Make Apache start automatically on (re)boot # chkconfig httpd on (run levels 2, 3, 4, 5) Start Apache # /etc/init.d/httpd start - Starting httpd: [ OK ] # service httpd start Test Apache Browse to http://localhost/ or http://example.com Displays "Red Hat Enterprise Linux Test Page" 28
:: System Setup :: Apache :: 29
:: System Setup :: MySQL :: Make MySQL start automatically on reboot # chkconfig mysqld on Start MySQL for the first time # /etc/init.d/mysqld start Set MySQL s admin password # /usr/bin/mysqladmin -u root password set-a-good-password' Test: Connect to MySQL with the mysql client # mysql -u root -p mysql> quit; 30
:: System Setup :: PHP :: Create a simple PHP script # cd /var/www/html/ # vi phpinfo.php <?php phpinfo();?> Test PHP Browse to http://example.com/phpinfo.php 31
:: System Setup :: PHP :: 32
:: System Setup :: Installing MediaWiki :: Get the MediaWiki install files ( by hand or use EPEL ) Untar archive and then rename directory (by hand) Prep the MediaWiki web-based installer (permissions) MediaWiki Installer (web based) Wiki database setup (web based) Perform final steps (edit LocalSettings.php) Test your wiki 33
:: System Setup :: Installing MediaWiki :: Using Extra Packages for Enterprise Linux (EPEL Repo) # rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epelrelease-5-3.noarch.rpm' # yum install mediawiki 34
:: System Setup :: Installing MediaWiki :: 35
:: System Setup :: Customizing MediaWiki :: Changing the logo and style (CSS) Enabling useful features in MediaWiki - short URLs - image/file uploads - require login to edit - extending functionality with 3rd party plugins 36
:: System Setup :: Extending MediaWiki :: 3rd Party Plug-ins by hand (some can use yum) # yum install mediawiki-cite mediawiki-wikicalendar Code Syntax Highlighting Extension Cite Extension Semantic MediaWiki hundreds of other extensions 37
:: System Setup :: Extending MediaWiki :: Semantic MediaWiki A free extension of MediaWiki that helps to search, organize, tag, browse, evaluate, and share the wiki's content. 38
:: System Setup :: Wiki Backups :: It is important to make regular backups! MediaWiki stores important data in two places: 1. Database - Pages and their contents, users and their preferences, metadata, search index, etc. 2. File System - Software configuration files, custom skins, extensions, images (inc. deleted images) etc. 39
:: System Setup :: Wiki Backup (cont.) :: A sample command to run from a crontab may look like: /usr/bin/nice -n 19 /usr/bin/mysqldump -u $USER --password=$password $DATABASE -c /usr/bin/nice -n 19 /bin/gzip -9 > ~/backup/wiki-$database-$(date '+%Y%m%d').sql.gz Use valid values for $USER, $PASSWORD, $DATABASE. This will write a backup file with the weekday in the filename so you would have a rolling set of backups. 40
:: System Setup :: The Intranet :: Protect your wiki and wiki server MediaWiki Authentication Extensions - HTTP/Apache - SSL - LDAP, LDAP/AD - Shibboleth 41
:: Overview :: Introduction Definitions Concepts Roadmap System Setup Using MediaWiki Conclusion 42
:: Using MediaWiki :: Basic editing and formatting Organizing with Categories Suggested workflow for creating documentation Wiki Management 43
:: Using MediaWiki :: Editing & Formatting :: The wiki markup language A simplified way of splitting content into sections Adding basic emphasis to text Interlinking concepts between articles 44
:: Using MediaWiki :: Organizing :: Categorize each article in a wiki Organize your data, define states that the particular article is in (DRAFT, FINAL, etc.), and define the maintainers of the document. To make an article part of a category, simply add this text: [[Category:MyCategory]] 45
:: Using MediaWiki :: Workflow :: Information dump Create an outline for the article Categorization Write some documentation, apply formatting Interlink to other articles Revision Tying up the last lose threads 46
:: Using MediaWiki :: Wiki Management :: Define categories and document states Review process for documents Using the Discussion page Policing (Special:Pages) 47
:: Using MediaWiki :: Wiki Management (cont.) :: Define categories for document states Draft - use this to denote an article that is in progress, or in rough draft stages. NeedsReview - used to denote that an article is finished, but requires outside review of other knowledge-base team members. 48
:: Using MediaWiki :: Wiki Management (cont.) :: Review process for documents Use category state tags to find documents that need review If needed changes are found, and are simple, make the change yourself. If changes are drastic and require major rewriting, make comments on the Discussion (or "Talk") page of the article. 49
:: Using MediaWiki :: Wiki Management (cont.) :: Using the Discussion page of a wiki Allows for discussion of the article in question, without changes to the article itself. This can save on revisions and rollbacks required on the article. 50
:: Using MediaWiki :: Wiki Management (cont.) :: Policing the wiki Use the special pages to help you watch the state of your wiki and find articles that need attention. 51
:: Using MediaWiki :: Wiki Management (cont.) :: Highlights from Special:SpecialPages Special:ShortPages Special:LongPages Special:WantedPages Special:LonelyPages Special:NewPages Special:RecentChanges 52
:: Using MediaWiki :: Wiki Management (cont.) :: Special:ShortPages Find especially short pages. Usually these are incomplete "stub" articles that have only very basic information on them. Often they are pages that were created as part of a larger article but were never properly finished. 53
:: Using MediaWiki :: Wiki Management (cont.) :: Special:LongPages Find overly large articles. While not necessarily a bad thing, these types of articles might benefit from being separated into several smaller articles. 54
:: Using MediaWiki :: Wiki Management (cont.) :: Special:WantedPages A type of article that does not exist yet but has been referred to with an internal link from another article. 55
:: Using MediaWiki :: Wiki Management (cont.) :: Special:LonelyPages Articles are not linked from or transcluded into other pages. In other words, pages whose parent article that referenced them has been changed to no longer mention them. 56
:: Using MediaWiki :: Wiki Management (cont.) :: Special:NewPages Tracks new pages that have been recently created. 57
:: Using MediaWiki :: Wiki Management (cont.) :: Special:RecentChanges Tracks most recent changes to the entire wiki. 58
:: Overview :: Introduction Definitions Concepts Roadmap System Setup Using MediaWiki Conclusion 59
:: Conclusion :: By utilizing a software development process as our roadmap, we are able to apply basic concepts of a knowledge management system that will provide an efficient knowledge base using Linux and open source software. https://www.kbcasestudy.info 60
:: Conclusion :: Take Home :: Do objectives and goals for knowledge management exist within your organization? How can your organization refine/improve it's current knowledge base? How can your organization benefit from the concepts and technologies presented here? 61
62