Contributing to Science Live Pipeline#
Thank you for your interest in contributing to Science Live! We welcome contributions from researchers, developers, and anyone passionate about breaking down knowledge silos in science.
π Quick Start for Contributors#
Setup Development Environment#
# Fork and clone the repository
git clone https://github.com/YOUR-USERNAME/science-live-pipeline.git
cd science-live-pipeline
# Install in development mode
pip install -e ".[dev]"
# Run tests to verify setup
pytest tests/
Make Your First Contribution#
Find an issue or propose a new feature
Create a branch:
git checkout -b feature/your-feature-name
Make changes and add tests
Run tests:
pytest tests/
Submit a pull request
π― Ways to Contribute#
For Researchers#
Test with your domain: Try Science Live with your research questions
Report issues: Let us know what doesnβt work or could be improved
Suggest nanopub sources: Help us connect to relevant scientific databases
Domain expertise: Help improve entity extraction for your field
For Developers#
Fix bugs: Check our GitHub Issues
Add features: Implement new pipeline steps or improve existing ones
Improve performance: Optimize queries, caching, or processing speed
Enhance documentation: Help other developers understand the codebase
For Data Scientists#
Improve NLP: Enhance question processing and entity extraction
Better algorithms: Improve confidence scoring and result ranking
Evaluation metrics: Help us measure and improve pipeline effectiveness
π Contribution Guidelines#
Code Standards#
Follow existing code style (we use
black
for formatting)Add type hints where possible
Write docstrings for new functions and classes
Include tests for new functionality
Testing#
# Run all tests
pytest tests/
# Run specific test categories
pytest tests/ -m unit
pytest tests/ -m integration
# Check test coverage
pytest tests/ --cov=science_live
Documentation#
Update docstrings for any changed functions
Add examples for new features
Update the quickstart guide if needed
π Reporting Issues#
When reporting bugs, please include:
Science Live version:
pip show science-live
Python version:
python --version
Operating system
Question you asked (if relevant)
Expected vs actual behavior
Error messages (full traceback if possible)
Example Bug Report#
**Bug**: Pipeline crashes with ORCID queries
**Environment**:
- Science Live: 0.0.1
- Python: 3.9.2
- macOS 12.1
**Question**: "What papers by 0000-0002-1784-2920?"
**Error**:
KeyError: βauthorβ at science_live/pipeline/entity_extractor.py:45
**Expected**: Should return author's publications
π‘ Feature Requests#
For new features, please:
Check existing issues to avoid duplicates
Describe the problem your feature would solve
Provide use cases from your research experience
Suggest implementation if you have ideas
Example Feature Request#
**Feature**: Support for chemical formula queries
**Problem**: Researchers can't easily find papers mentioning specific chemical compounds
**Use Case**: "What papers discuss H2SO4?" should find chemistry papers
**Implementation Ideas**: Add chemical formula regex patterns to entity extraction
π§ Development Workflow#
Setting Up Your Environment#
# Create development branch
git checkout -b feature/my-feature
# Make changes and test
# ... edit files ...
pytest tests/
# Commit with clear message
git commit -m "Add: Chemical formula entity extraction
- Recognize common chemical formulas (H2O, CO2, etc.)
- Add tests for chemistry domain queries
- Update documentation with chemistry examples"
Pull Request Process#
Keep PRs focused: One feature or fix per PR
Write clear titles: βFix: ORCID entity linking errorβ
Describe changes: What you changed and why
Link related issues: βFixes #123β
Request reviews: Tag relevant maintainers
π€ Community Guidelines#
Be respectful: Weβre all here to advance science
Ask questions: No question is too basic
Share knowledge: Help others learn from your expertise
Credit others: Acknowledge contributions and prior work
π Getting Help#
GitHub Discussions: General questions and ideas
GitHub Issues: Bug reports and feature requests
Documentation: Check our docs
π Recognition#
Contributors will be:
Recognized in our README using the All Contributors specification
Acknowledged in release notes for their specific contributions
Invited to co-author papers about Science Live (for significant contributions)
Featured on GitHubβs automatic contributors page
Ready to contribute? Check out our good first issues or start by testing Science Live with your research questions!