The NCI CBIIT Open Source Development Initiative invites you to join in development of open source tools for developing and serving terminology content and ontologic structures; development of techniques and tools to validate terminology content and ontology structure; and development of techniques and technologies for federating terminologies and ontologies.
The primary mission and descriptions of EVS components are found on the EVS overview page. Projects for which CBIIT is seeking proposals may pertain to one EVS component only or span several, may address integration of EVS tools or services with non-NCI resources, or may address issues of terminology and ontology quality assurance, collaborative content development, or both.
Expectations regarding a "unit" of contribution are described in the Unit of Contribution section in more detail but essentially a unit of contribution can be an extension to the EVS UML Model, an architecture or code change, a functional enhancement, documentation enhancement or a training module. Among the EVS components for which proposals are accepted are:
- Software to assess the quality of terminologies developed in OWL
- Development of techniques to support open, community-based collaborative ontology development, federation of ontologies, and related software that implements those techniques
- Training techniques, tools and materials addressing any aspect of using a contemporary biomedical terminology, especially NCI Thesaurus or any terminology found on the NCI Terminology Server or on the NCI Metathesaurus Server
How do I participate?
Contact the EVS team through Application Support to to discuss your interest and the proposed scope of your project. Be sure to include "EVS OSDI" in the subject line of your message. We will evaluate proposals as they are received and work with you on a plan to incorporate accepted ideas into the relevant code base or documentation library. Once a project is slated for a release, enhancement, or change order – and prior to moving from the development environment to quality assurance and integration testing – OSDI contributors along with EVS team reach a "go" "no-go" decision on each item based on unit testing results, the same as is done for internally developed code.
Virtual Software Development team meetings provide an opportunity to discuss software development issues, ideas and release plans. Contributors are invited to attend. This is where you ask for and get help and feedback on specific development items, exchange ideas or demonstrate prototypes, and have direct contact with the EVS development team.
Once becoming a member of a team, you are added to the EVS Software Developers Listserv, which offers and opportunity to discuss EVS specific issues with other EVS developers.
As a member of the EVS community, you have access to the caCORE Developers Listserv, which offers an opportunity to interact with and discuss cross-functional software development related issues.
- Model Driven Architecture (MDA) is expected to be understood and utilized by contributors.
- EVS and caCORE release cycles are to be followed, incorporating appropriate phases of design, development, testing, and deployment.
- For suggested EVS model extensions, an understanding of the caCORE architecture and the role of the EVS in providing base semantics is expected and should serve as the launching point.
- Demonstrated skills in appropriate programming languages are needed.
- Understanding of existing EVS services and functionality is needed.
Unit of Contribution
A unit of contribution can be as small as a bug fix or be a new feature or whole new tool. Contributors will be asked to describe the requirements their proposal is intended to meet in the form of a use case. A proposed unit of contribution will be evaluated based on contributor skills and fit within each of following areas:
UML Model Extensions
- EVS model extensions including addition of new objects, new relationships or modification of existing objects
Architecture and Code Changes
- New search or search paradigm
- Extension to existing architecture or interoperability with other applications
- User interface changes
- Bug fixes
- Extension to an existing tool that is, take existing functionality and add additional capabilities to it
- New or enhancements to technical documentation
- New training module or tutorial