@wentorai/research-plugins 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/curated/analysis/README.md +64 -0
- package/curated/domains/README.md +104 -0
- package/curated/literature/README.md +53 -0
- package/curated/research/README.md +62 -0
- package/curated/tools/README.md +87 -0
- package/curated/writing/README.md +61 -0
- package/index.ts +39 -0
- package/mcp-configs/academic-db/ChatSpatial.json +17 -0
- package/mcp-configs/academic-db/academia-mcp.json +17 -0
- package/mcp-configs/academic-db/academic-paper-explorer.json +17 -0
- package/mcp-configs/academic-db/academic-search-mcp-server.json +17 -0
- package/mcp-configs/academic-db/agentinterviews-mcp.json +17 -0
- package/mcp-configs/academic-db/all-in-mcp.json +17 -0
- package/mcp-configs/academic-db/apple-health-mcp.json +17 -0
- package/mcp-configs/academic-db/arxiv-latex-mcp.json +17 -0
- package/mcp-configs/academic-db/arxiv-mcp-server.json +17 -0
- package/mcp-configs/academic-db/bgpt-mcp.json +17 -0
- package/mcp-configs/academic-db/biomcp.json +17 -0
- package/mcp-configs/academic-db/biothings-mcp.json +17 -0
- package/mcp-configs/academic-db/catalysishub-mcp-server.json +17 -0
- package/mcp-configs/academic-db/clinicaltrialsgov-mcp-server.json +17 -0
- package/mcp-configs/academic-db/deep-research-mcp.json +17 -0
- package/mcp-configs/academic-db/dicom-mcp.json +17 -0
- package/mcp-configs/academic-db/enrichr-mcp-server.json +17 -0
- package/mcp-configs/academic-db/fec-mcp-server.json +17 -0
- package/mcp-configs/academic-db/fhir-mcp-server-themomentum.json +17 -0
- package/mcp-configs/academic-db/fhir-mcp.json +19 -0
- package/mcp-configs/academic-db/gget-mcp.json +17 -0
- package/mcp-configs/academic-db/google-researcher-mcp.json +17 -0
- package/mcp-configs/academic-db/idea-reality-mcp.json +17 -0
- package/mcp-configs/academic-db/legiscan-mcp.json +19 -0
- package/mcp-configs/academic-db/lex.json +17 -0
- package/mcp-configs/ai-platform/Adaptive-Graph-of-Thoughts-MCP-server.json +17 -0
- package/mcp-configs/ai-platform/ai-counsel.json +17 -0
- package/mcp-configs/ai-platform/atlas-mcp-server.json +17 -0
- package/mcp-configs/ai-platform/counsel-mcp.json +17 -0
- package/mcp-configs/ai-platform/cross-llm-mcp.json +17 -0
- package/mcp-configs/ai-platform/gptr-mcp.json +17 -0
- package/mcp-configs/browser/decipher-research-agent.json +17 -0
- package/mcp-configs/browser/deep-research.json +17 -0
- package/mcp-configs/browser/everything-claude-code.json +17 -0
- package/mcp-configs/browser/gpt-researcher.json +17 -0
- package/mcp-configs/browser/heurist-agent-framework.json +17 -0
- package/mcp-configs/data-platform/4everland-hosting-mcp.json +17 -0
- package/mcp-configs/data-platform/context-keeper.json +17 -0
- package/mcp-configs/data-platform/context7.json +19 -0
- package/mcp-configs/data-platform/contextstream-mcp.json +17 -0
- package/mcp-configs/data-platform/email-mcp.json +17 -0
- package/mcp-configs/note-knowledge/ApeRAG.json +17 -0
- package/mcp-configs/note-knowledge/In-Memoria.json +17 -0
- package/mcp-configs/note-knowledge/agent-memory.json +17 -0
- package/mcp-configs/note-knowledge/aimemo.json +17 -0
- package/mcp-configs/note-knowledge/biel-mcp.json +19 -0
- package/mcp-configs/note-knowledge/cognee.json +17 -0
- package/mcp-configs/note-knowledge/context-awesome.json +17 -0
- package/mcp-configs/note-knowledge/context-mcp.json +17 -0
- package/mcp-configs/note-knowledge/conversation-handoff-mcp.json +17 -0
- package/mcp-configs/note-knowledge/cortex.json +17 -0
- package/mcp-configs/note-knowledge/devrag.json +17 -0
- package/mcp-configs/note-knowledge/easy-obsidian-mcp.json +17 -0
- package/mcp-configs/note-knowledge/engram.json +17 -0
- package/mcp-configs/note-knowledge/gnosis-mcp.json +17 -0
- package/mcp-configs/note-knowledge/graphlit-mcp-server.json +19 -0
- package/mcp-configs/reference-mgr/arxiv-cli.json +17 -0
- package/mcp-configs/reference-mgr/arxiv-search-mcp.json +17 -0
- package/mcp-configs/reference-mgr/chiken.json +17 -0
- package/mcp-configs/reference-mgr/claude-scholar.json +17 -0
- package/mcp-configs/reference-mgr/devonthink-mcp.json +17 -0
- package/mcp-configs/registry.json +447 -0
- package/openclaw.plugin.json +21 -0
- package/package.json +61 -0
- package/skills/analysis/dataviz/color-accessibility-guide/SKILL.md +230 -0
- package/skills/analysis/dataviz/geospatial-viz-guide/SKILL.md +218 -0
- package/skills/analysis/dataviz/interactive-viz-guide/SKILL.md +287 -0
- package/skills/analysis/dataviz/network-visualization-guide/SKILL.md +195 -0
- package/skills/analysis/dataviz/publication-figures-guide/SKILL.md +238 -0
- package/skills/analysis/dataviz/python-dataviz-guide/SKILL.md +195 -0
- package/skills/analysis/econometrics/causal-inference-guide/SKILL.md +197 -0
- package/skills/analysis/econometrics/iv-regression-guide/SKILL.md +198 -0
- package/skills/analysis/econometrics/panel-data-guide/SKILL.md +274 -0
- package/skills/analysis/econometrics/robustness-checks/SKILL.md +250 -0
- package/skills/analysis/econometrics/stata-regression/SKILL.md +117 -0
- package/skills/analysis/econometrics/time-series-guide/SKILL.md +235 -0
- package/skills/analysis/statistics/bayesian-statistics-guide/SKILL.md +221 -0
- package/skills/analysis/statistics/hypothesis-testing-guide/SKILL.md +210 -0
- package/skills/analysis/statistics/meta-analysis-guide/SKILL.md +206 -0
- package/skills/analysis/statistics/nonparametric-tests-guide/SKILL.md +221 -0
- package/skills/analysis/statistics/power-analysis-guide/SKILL.md +240 -0
- package/skills/analysis/statistics/sem-guide/SKILL.md +231 -0
- package/skills/analysis/statistics/survival-analysis-guide/SKILL.md +195 -0
- package/skills/analysis/wrangling/missing-data-handling/SKILL.md +224 -0
- package/skills/analysis/wrangling/pandas-data-wrangling/SKILL.md +242 -0
- package/skills/analysis/wrangling/questionnaire-design-guide/SKILL.md +234 -0
- package/skills/analysis/wrangling/text-mining-guide/SKILL.md +225 -0
- package/skills/domains/ai-ml/computer-vision-guide/SKILL.md +213 -0
- package/skills/domains/ai-ml/deep-learning-papers-guide/SKILL.md +200 -0
- package/skills/domains/ai-ml/llm-evaluation-guide/SKILL.md +194 -0
- package/skills/domains/ai-ml/prompt-engineering-research/SKILL.md +233 -0
- package/skills/domains/ai-ml/reinforcement-learning-guide/SKILL.md +254 -0
- package/skills/domains/ai-ml/transformer-architecture-guide/SKILL.md +233 -0
- package/skills/domains/biomedical/clinical-research-guide/SKILL.md +232 -0
- package/skills/domains/biomedical/clinicaltrials-api/SKILL.md +177 -0
- package/skills/domains/biomedical/epidemiology-guide/SKILL.md +200 -0
- package/skills/domains/biomedical/genomics-analysis-guide/SKILL.md +270 -0
- package/skills/domains/business/market-analysis-guide/SKILL.md +112 -0
- package/skills/domains/business/strategic-management-guide/SKILL.md +154 -0
- package/skills/domains/chemistry/computational-chemistry-guide/SKILL.md +266 -0
- package/skills/domains/chemistry/retrosynthesis-guide/SKILL.md +215 -0
- package/skills/domains/cs/algorithms-complexity-guide/SKILL.md +194 -0
- package/skills/domains/cs/dblp-api/SKILL.md +129 -0
- package/skills/domains/cs/software-engineering-research/SKILL.md +218 -0
- package/skills/domains/ecology/biodiversity-data-guide/SKILL.md +296 -0
- package/skills/domains/ecology/conservation-biology-guide/SKILL.md +198 -0
- package/skills/domains/ecology/gbif-api/SKILL.md +158 -0
- package/skills/domains/ecology/inaturalist-api/SKILL.md +173 -0
- package/skills/domains/economics/behavioral-economics-guide/SKILL.md +239 -0
- package/skills/domains/economics/development-economics-guide/SKILL.md +181 -0
- package/skills/domains/economics/fred-api/SKILL.md +189 -0
- package/skills/domains/education/curriculum-design-guide/SKILL.md +144 -0
- package/skills/domains/education/learning-science-guide/SKILL.md +150 -0
- package/skills/domains/finance/financial-data-analysis/SKILL.md +152 -0
- package/skills/domains/finance/quantitative-finance-guide/SKILL.md +151 -0
- package/skills/domains/geoscience/climate-science-guide/SKILL.md +158 -0
- package/skills/domains/geoscience/gis-remote-sensing-guide/SKILL.md +129 -0
- package/skills/domains/humanities/digital-humanities-guide/SKILL.md +181 -0
- package/skills/domains/humanities/philosophy-research-guide/SKILL.md +148 -0
- package/skills/domains/law/courtlistener-api/SKILL.md +213 -0
- package/skills/domains/law/legal-research-guide/SKILL.md +250 -0
- package/skills/domains/math/linear-algebra-applications/SKILL.md +227 -0
- package/skills/domains/math/numerical-methods-guide/SKILL.md +236 -0
- package/skills/domains/math/oeis-api/SKILL.md +158 -0
- package/skills/domains/pharma/clinical-pharmacology-guide/SKILL.md +165 -0
- package/skills/domains/pharma/drug-development-guide/SKILL.md +177 -0
- package/skills/domains/physics/computational-physics-guide/SKILL.md +300 -0
- package/skills/domains/physics/nasa-ads-api/SKILL.md +150 -0
- package/skills/domains/physics/quantum-computing-guide/SKILL.md +234 -0
- package/skills/domains/social-science/social-research-methods/SKILL.md +194 -0
- package/skills/domains/social-science/survey-research-guide/SKILL.md +182 -0
- package/skills/literature/discovery/citation-alert-guide/SKILL.md +154 -0
- package/skills/literature/discovery/conference-proceedings-guide/SKILL.md +142 -0
- package/skills/literature/discovery/literature-mapping-guide/SKILL.md +175 -0
- package/skills/literature/discovery/paper-tracking-guide/SKILL.md +211 -0
- package/skills/literature/discovery/rss-paper-feeds/SKILL.md +214 -0
- package/skills/literature/discovery/semantic-scholar-recs-guide/SKILL.md +164 -0
- package/skills/literature/fulltext/doaj-api/SKILL.md +120 -0
- package/skills/literature/fulltext/interlibrary-loan-guide/SKILL.md +163 -0
- package/skills/literature/fulltext/open-access-guide/SKILL.md +183 -0
- package/skills/literature/fulltext/pmc-oai-api/SKILL.md +184 -0
- package/skills/literature/fulltext/preprint-servers-guide/SKILL.md +128 -0
- package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +207 -0
- package/skills/literature/fulltext/unpaywall-api/SKILL.md +113 -0
- package/skills/literature/metadata/altmetrics-guide/SKILL.md +132 -0
- package/skills/literature/metadata/citation-network-guide/SKILL.md +236 -0
- package/skills/literature/metadata/crossref-api/SKILL.md +133 -0
- package/skills/literature/metadata/datacite-api/SKILL.md +126 -0
- package/skills/literature/metadata/doi-resolution-guide/SKILL.md +168 -0
- package/skills/literature/metadata/h-index-guide/SKILL.md +183 -0
- package/skills/literature/metadata/journal-metrics-guide/SKILL.md +188 -0
- package/skills/literature/metadata/opencitations-api/SKILL.md +128 -0
- package/skills/literature/metadata/orcid-api/SKILL.md +136 -0
- package/skills/literature/metadata/orcid-integration-guide/SKILL.md +178 -0
- package/skills/literature/search/arxiv-api/SKILL.md +95 -0
- package/skills/literature/search/biorxiv-api/SKILL.md +123 -0
- package/skills/literature/search/boolean-search-guide/SKILL.md +199 -0
- package/skills/literature/search/citation-chaining-guide/SKILL.md +148 -0
- package/skills/literature/search/database-comparison-guide/SKILL.md +100 -0
- package/skills/literature/search/europe-pmc-api/SKILL.md +120 -0
- package/skills/literature/search/google-scholar-guide/SKILL.md +182 -0
- package/skills/literature/search/mesh-terms-guide/SKILL.md +164 -0
- package/skills/literature/search/openalex-api/SKILL.md +134 -0
- package/skills/literature/search/pubmed-api/SKILL.md +130 -0
- package/skills/literature/search/scientify-literature-survey/SKILL.md +203 -0
- package/skills/literature/search/semantic-scholar-api/SKILL.md +134 -0
- package/skills/literature/search/systematic-search-strategy/SKILL.md +214 -0
- package/skills/research/automation/ai-scientist-guide/SKILL.md +228 -0
- package/skills/research/automation/data-collection-automation/SKILL.md +248 -0
- package/skills/research/automation/research-workflow-automation/SKILL.md +266 -0
- package/skills/research/deep-research/meta-synthesis-guide/SKILL.md +174 -0
- package/skills/research/deep-research/research-cog/SKILL.md +153 -0
- package/skills/research/deep-research/scoping-review-guide/SKILL.md +217 -0
- package/skills/research/deep-research/systematic-review-guide/SKILL.md +250 -0
- package/skills/research/funding/figshare-api/SKILL.md +163 -0
- package/skills/research/funding/grant-writing-guide/SKILL.md +233 -0
- package/skills/research/funding/nsf-grant-guide/SKILL.md +206 -0
- package/skills/research/funding/open-science-guide/SKILL.md +255 -0
- package/skills/research/funding/zenodo-api/SKILL.md +174 -0
- package/skills/research/methodology/action-research-guide/SKILL.md +201 -0
- package/skills/research/methodology/experimental-design-guide/SKILL.md +236 -0
- package/skills/research/methodology/grad-school-guide/SKILL.md +182 -0
- package/skills/research/methodology/grounded-theory-guide/SKILL.md +171 -0
- package/skills/research/methodology/mixed-methods-guide/SKILL.md +208 -0
- package/skills/research/methodology/qualitative-research-guide/SKILL.md +234 -0
- package/skills/research/methodology/scientify-idea-generation/SKILL.md +222 -0
- package/skills/research/paper-review/paper-reading-assistant/SKILL.md +266 -0
- package/skills/research/paper-review/peer-review-guide/SKILL.md +227 -0
- package/skills/research/paper-review/rebuttal-writing-guide/SKILL.md +185 -0
- package/skills/research/paper-review/scientify-write-review-paper/SKILL.md +209 -0
- package/skills/tools/code-exec/jupyter-notebook-guide/SKILL.md +178 -0
- package/skills/tools/code-exec/python-reproducibility-guide/SKILL.md +341 -0
- package/skills/tools/code-exec/r-reproducibility-guide/SKILL.md +236 -0
- package/skills/tools/code-exec/sandbox-execution-guide/SKILL.md +221 -0
- package/skills/tools/diagram/mermaid-diagram-guide/SKILL.md +269 -0
- package/skills/tools/diagram/plantuml-guide/SKILL.md +397 -0
- package/skills/tools/diagram/scientific-illustration-guide/SKILL.md +225 -0
- package/skills/tools/document/anystyle-api/SKILL.md +199 -0
- package/skills/tools/document/grobid-pdf-parsing/SKILL.md +294 -0
- package/skills/tools/document/markdown-academic-guide/SKILL.md +217 -0
- package/skills/tools/document/pdf-extraction-guide/SKILL.md +321 -0
- package/skills/tools/knowledge-graph/knowledge-graph-construction/SKILL.md +306 -0
- package/skills/tools/knowledge-graph/ontology-design-guide/SKILL.md +214 -0
- package/skills/tools/knowledge-graph/rag-methodology-guide/SKILL.md +325 -0
- package/skills/tools/ocr-translate/formula-recognition-guide/SKILL.md +367 -0
- package/skills/tools/ocr-translate/handwriting-recognition-guide/SKILL.md +211 -0
- package/skills/tools/ocr-translate/latex-ocr-guide/SKILL.md +204 -0
- package/skills/tools/ocr-translate/multilingual-research-guide/SKILL.md +234 -0
- package/skills/tools/scraping/academic-web-scraping/SKILL.md +326 -0
- package/skills/tools/scraping/api-data-collection-guide/SKILL.md +301 -0
- package/skills/tools/scraping/web-scraping-ethics-guide/SKILL.md +250 -0
- package/skills/writing/citation/bibtex-management-guide/SKILL.md +246 -0
- package/skills/writing/citation/citation-style-guide/SKILL.md +248 -0
- package/skills/writing/citation/reference-manager-comparison/SKILL.md +208 -0
- package/skills/writing/citation/zotero-api/SKILL.md +188 -0
- package/skills/writing/composition/abstract-writing-guide/SKILL.md +188 -0
- package/skills/writing/composition/discussion-writing-guide/SKILL.md +194 -0
- package/skills/writing/composition/introduction-writing-guide/SKILL.md +194 -0
- package/skills/writing/composition/literature-review-writing/SKILL.md +196 -0
- package/skills/writing/composition/methods-section-guide/SKILL.md +185 -0
- package/skills/writing/composition/response-to-reviewers/SKILL.md +215 -0
- package/skills/writing/composition/scientific-writing-guide/SKILL.md +152 -0
- package/skills/writing/latex/bibliography-management-guide/SKILL.md +206 -0
- package/skills/writing/latex/latex-drawing-guide/SKILL.md +234 -0
- package/skills/writing/latex/latex-ecosystem-guide/SKILL.md +240 -0
- package/skills/writing/latex/math-typesetting-guide/SKILL.md +231 -0
- package/skills/writing/latex/overleaf-collaboration-guide/SKILL.md +211 -0
- package/skills/writing/latex/tikz-diagrams-guide/SKILL.md +211 -0
- package/skills/writing/polish/academic-translation-guide/SKILL.md +175 -0
- package/skills/writing/polish/academic-writing-refiner/SKILL.md +143 -0
- package/skills/writing/polish/ai-writing-humanizer/SKILL.md +178 -0
- package/skills/writing/polish/grammar-checker-guide/SKILL.md +184 -0
- package/skills/writing/polish/plagiarism-detection-guide/SKILL.md +167 -0
- package/skills/writing/templates/beamer-presentation-guide/SKILL.md +263 -0
- package/skills/writing/templates/conference-paper-template/SKILL.md +219 -0
- package/skills/writing/templates/thesis-template-guide/SKILL.md +200 -0
- package/skills/writing/templates/thesis-writing-guide/SKILL.md +220 -0
- package/src/tools/arxiv.ts +131 -0
- package/src/tools/crossref.ts +112 -0
- package/src/tools/openalex.ts +174 -0
- package/src/tools/pubmed.ts +166 -0
- package/src/tools/semantic-scholar.ts +108 -0
- package/src/tools/unpaywall.ts +58 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: algorithms-complexity-guide
|
|
3
|
+
description: "Analyze algorithm complexity and computational efficiency for research"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "gear"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "cs"
|
|
9
|
+
keywords: ["algorithms", "computational complexity", "Big-O", "NP-hard", "optimization", "data structures"]
|
|
10
|
+
source: "wentor-research-plugins"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Algorithms and Complexity Guide
|
|
14
|
+
|
|
15
|
+
A skill for analyzing algorithm complexity and computational efficiency in research contexts. Covers asymptotic notation, common complexity classes, NP-completeness, amortized analysis, and strategies for presenting algorithmic contributions in papers.
|
|
16
|
+
|
|
17
|
+
## Asymptotic Notation
|
|
18
|
+
|
|
19
|
+
### Big-O, Omega, and Theta
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
O(f(n)) -- Upper bound (worst case, "at most")
|
|
23
|
+
T(n) is O(f(n)) if T(n) <= c * f(n) for large n
|
|
24
|
+
|
|
25
|
+
Omega(f(n)) -- Lower bound (best case, "at least")
|
|
26
|
+
T(n) is Omega(f(n)) if T(n) >= c * f(n) for large n
|
|
27
|
+
|
|
28
|
+
Theta(f(n)) -- Tight bound (exact asymptotic growth)
|
|
29
|
+
Both O(f(n)) and Omega(f(n))
|
|
30
|
+
|
|
31
|
+
Common growth rates (slowest to fastest):
|
|
32
|
+
O(1) < O(log n) < O(sqrt(n)) < O(n) < O(n log n) < O(n^2) < O(n^3) < O(2^n) < O(n!)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Practical Interpretation
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
def estimate_runtime(n: int, complexity: str) -> dict:
|
|
39
|
+
"""
|
|
40
|
+
Estimate practical runtime for common complexities.
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
n: Input size
|
|
44
|
+
complexity: Complexity class string
|
|
45
|
+
"""
|
|
46
|
+
import math
|
|
47
|
+
|
|
48
|
+
complexities = {
|
|
49
|
+
"O(1)": 1,
|
|
50
|
+
"O(log n)": math.log2(max(n, 1)),
|
|
51
|
+
"O(n)": n,
|
|
52
|
+
"O(n log n)": n * math.log2(max(n, 1)),
|
|
53
|
+
"O(n^2)": n ** 2,
|
|
54
|
+
"O(n^3)": n ** 3,
|
|
55
|
+
"O(2^n)": 2 ** min(n, 40), # Cap to avoid overflow
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
operations = complexities.get(complexity, n)
|
|
59
|
+
|
|
60
|
+
# Assuming ~10^9 operations per second
|
|
61
|
+
seconds = operations / 1e9
|
|
62
|
+
|
|
63
|
+
return {
|
|
64
|
+
"input_size": n,
|
|
65
|
+
"complexity": complexity,
|
|
66
|
+
"estimated_operations": operations,
|
|
67
|
+
"estimated_time": (
|
|
68
|
+
f"{seconds:.2e} seconds"
|
|
69
|
+
if seconds < 60
|
|
70
|
+
else f"{seconds / 60:.1f} minutes"
|
|
71
|
+
if seconds < 3600
|
|
72
|
+
else f"{seconds / 3600:.1f} hours"
|
|
73
|
+
),
|
|
74
|
+
"feasible": operations < 1e12 # Roughly 1000 seconds
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Complexity Classes
|
|
79
|
+
|
|
80
|
+
### P, NP, and Beyond
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
P: Problems solvable in polynomial time
|
|
84
|
+
Examples: Sorting, shortest path, MST, linear programming
|
|
85
|
+
|
|
86
|
+
NP: Problems verifiable in polynomial time
|
|
87
|
+
(Given a solution, can check it quickly)
|
|
88
|
+
Examples: SAT, TSP, graph coloring, subset sum
|
|
89
|
+
|
|
90
|
+
NP-Complete: The "hardest" problems in NP
|
|
91
|
+
If any one is in P, then P = NP
|
|
92
|
+
Proven via reduction from a known NP-complete problem
|
|
93
|
+
|
|
94
|
+
NP-Hard: At least as hard as NP-complete
|
|
95
|
+
Not necessarily in NP (may not even be decision problems)
|
|
96
|
+
Examples: Optimization versions of NP-complete problems
|
|
97
|
+
|
|
98
|
+
PSPACE: Solvable with polynomial space (possibly exponential time)
|
|
99
|
+
Examples: QBF, certain game-theoretic problems
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Proving NP-Completeness
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
To prove problem X is NP-complete:
|
|
106
|
+
1. Show X is in NP:
|
|
107
|
+
- Given a certificate (proposed solution), verify it in poly time
|
|
108
|
+
|
|
109
|
+
2. Reduce a known NP-complete problem Y to X:
|
|
110
|
+
- Construct a polynomial-time transformation f
|
|
111
|
+
such that Y has solution iff f(Y) has solution in X
|
|
112
|
+
- Common starting problems: SAT, 3-SAT, Vertex Cover,
|
|
113
|
+
Hamiltonian Path, Subset Sum
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Algorithm Analysis Techniques
|
|
117
|
+
|
|
118
|
+
### Recurrence Relations
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
For divide-and-conquer algorithms, solve recurrences:
|
|
122
|
+
|
|
123
|
+
Master Theorem: T(n) = a * T(n/b) + O(n^d)
|
|
124
|
+
|
|
125
|
+
Case 1: d < log_b(a) -> T(n) = O(n^(log_b(a)))
|
|
126
|
+
Case 2: d = log_b(a) -> T(n) = O(n^d * log n)
|
|
127
|
+
Case 3: d > log_b(a) -> T(n) = O(n^d)
|
|
128
|
+
|
|
129
|
+
Examples:
|
|
130
|
+
Merge Sort: T(n) = 2T(n/2) + O(n) -> O(n log n) [Case 2]
|
|
131
|
+
Binary Search: T(n) = T(n/2) + O(1) -> O(log n) [Case 2]
|
|
132
|
+
Strassen: T(n) = 7T(n/2) + O(n^2) -> O(n^2.81) [Case 1]
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Amortized Analysis
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
Amortized analysis provides the average cost per operation over
|
|
139
|
+
a worst-case sequence of operations.
|
|
140
|
+
|
|
141
|
+
Methods:
|
|
142
|
+
- Aggregate method: Total cost / number of operations
|
|
143
|
+
- Accounting method: Assign "credits" to cheap operations
|
|
144
|
+
- Potential method: Define a potential function
|
|
145
|
+
|
|
146
|
+
Example: Dynamic array (ArrayList)
|
|
147
|
+
Most insertions: O(1)
|
|
148
|
+
Occasional resize: O(n)
|
|
149
|
+
Amortized cost per insertion: O(1)
|
|
150
|
+
(The expensive resizes are rare enough that the average stays constant)
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Presenting Algorithms in Papers
|
|
154
|
+
|
|
155
|
+
### Algorithm Pseudocode Standards
|
|
156
|
+
|
|
157
|
+
```latex
|
|
158
|
+
% Use the algorithm2e or algorithmicx package in LaTeX
|
|
159
|
+
|
|
160
|
+
\begin{algorithm}[H]
|
|
161
|
+
\caption{Description of Algorithm}
|
|
162
|
+
\label{alg:myalgorithm}
|
|
163
|
+
\KwIn{Input description}
|
|
164
|
+
\KwOut{Output description}
|
|
165
|
+
|
|
166
|
+
initialization\;
|
|
167
|
+
\While{condition}{
|
|
168
|
+
compute something\;
|
|
169
|
+
\If{condition}{
|
|
170
|
+
action\;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
\Return result\;
|
|
174
|
+
\end{algorithm}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### What to Include in an Algorithms Paper
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
1. Problem definition (formal, with input/output specification)
|
|
181
|
+
2. Related work and existing approaches with their complexities
|
|
182
|
+
3. Algorithm description (pseudocode + English explanation)
|
|
183
|
+
4. Correctness proof (invariants, termination argument)
|
|
184
|
+
5. Complexity analysis (time and space, worst/average/amortized)
|
|
185
|
+
6. Experimental evaluation:
|
|
186
|
+
- Comparison with baselines on standard benchmarks
|
|
187
|
+
- Runtime scaling with input size (empirical vs. theoretical)
|
|
188
|
+
- Real-world datasets in addition to synthetic ones
|
|
189
|
+
7. Discussion of practical considerations (constants, cache behavior)
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Dealing with Intractability
|
|
193
|
+
|
|
194
|
+
When you encounter NP-hard problems in your research, consider: polynomial-time approximation algorithms (with provable approximation ratios), heuristics (greedy, local search, simulated annealing), fixed-parameter tractable (FPT) algorithms if a relevant parameter is small, integer linear programming (ILP) solvers for moderate-size instances, or restricting to special cases where the problem becomes tractable (e.g., trees, planar graphs).
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: dblp-api
|
|
3
|
+
description: "Search computer science publications, authors, and venues via DBLP"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🔍"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "cs"
|
|
9
|
+
keywords: ["algorithms", "data structures", "software engineering", "database", "academic database search"]
|
|
10
|
+
source: "https://dblp.org/faq/1474707.html"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# DBLP API Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
DBLP (Digital Bibliography and Library Project) is the most comprehensive open bibliographic database for computer science. Maintained by Schloss Dagstuhl - Leibniz Center for Informatics, DBLP indexes over 6.5 million publications from thousands of journals, conference proceedings, and informal publication venues in computer science and related fields.
|
|
18
|
+
|
|
19
|
+
DBLP is widely regarded as the authoritative source for computer science bibliographic data. It is used by researchers for tracking publication records, by hiring committees for evaluating academic productivity, and by bibliometric tools for analyzing the computer science research landscape. Each author in DBLP has a unique profile page with a complete, disambiguated publication list.
|
|
20
|
+
|
|
21
|
+
The API is entirely free and open, requiring no authentication. There are no published rate limits, though users are expected to be respectful and avoid excessive load on the servers. All data is available under the ODC-BY license.
|
|
22
|
+
|
|
23
|
+
## Authentication
|
|
24
|
+
|
|
25
|
+
No authentication required. The DBLP API is fully open and free to use. No API key, registration, or email is needed. Users should include a descriptive User-Agent header and avoid sending excessive concurrent requests.
|
|
26
|
+
|
|
27
|
+
## Core Endpoints
|
|
28
|
+
|
|
29
|
+
### Publication Search: Find Computer Science Papers
|
|
30
|
+
|
|
31
|
+
- **URL**: `GET https://dblp.org/search/publ/api`
|
|
32
|
+
- **Parameters**:
|
|
33
|
+
| Param | Type | Required | Description |
|
|
34
|
+
|-------|------|----------|-------------|
|
|
35
|
+
| q | string | Yes | Search query (supports author:, venue:, year: prefixes) |
|
|
36
|
+
| format | string | No | Response format: json, xml (default: xml) |
|
|
37
|
+
| h | integer | No | Number of results (default: 30, max: 1000) |
|
|
38
|
+
| f | integer | No | Starting offset for pagination (default: 0) |
|
|
39
|
+
| c | integer | No | Maximum completions in auto-suggest mode |
|
|
40
|
+
- **Example**:
|
|
41
|
+
```bash
|
|
42
|
+
curl "https://dblp.org/search/publ/api?q=graph+neural+networks&format=json&h=10&f=0"
|
|
43
|
+
```
|
|
44
|
+
- **Response**: JSON with `result.hits` containing `@total` count and `hit` array. Each hit has `info` with `title`, `authors.author`, `venue`, `year`, `type`, `doi`, `url`, and `ee` (electronic edition link).
|
|
45
|
+
|
|
46
|
+
### Author Search: Find Researchers
|
|
47
|
+
|
|
48
|
+
- **URL**: `GET https://dblp.org/search/author/api`
|
|
49
|
+
- **Parameters**:
|
|
50
|
+
| Param | Type | Required | Description |
|
|
51
|
+
|-------|------|----------|-------------|
|
|
52
|
+
| q | string | Yes | Author name query |
|
|
53
|
+
| format | string | No | Response format: json, xml |
|
|
54
|
+
| h | integer | No | Number of results (default: 30) |
|
|
55
|
+
| f | integer | No | Starting offset |
|
|
56
|
+
- **Example**:
|
|
57
|
+
```bash
|
|
58
|
+
curl "https://dblp.org/search/author/api?q=Yann+LeCun&format=json&h=5"
|
|
59
|
+
```
|
|
60
|
+
- **Response**: JSON with matched author profiles including `author` name, `url` (DBLP profile URL), and optional `notes` with affiliation information.
|
|
61
|
+
|
|
62
|
+
### Venue Search: Find Journals and Conferences
|
|
63
|
+
|
|
64
|
+
- **URL**: `GET https://dblp.org/search/venue/api`
|
|
65
|
+
- **Parameters**:
|
|
66
|
+
| Param | Type | Required | Description |
|
|
67
|
+
|-------|------|----------|-------------|
|
|
68
|
+
| q | string | Yes | Venue name query |
|
|
69
|
+
| format | string | No | Response format: json, xml |
|
|
70
|
+
| h | integer | No | Number of results |
|
|
71
|
+
| f | integer | No | Starting offset |
|
|
72
|
+
- **Example**:
|
|
73
|
+
```bash
|
|
74
|
+
curl "https://dblp.org/search/venue/api?q=NeurIPS&format=json&h=5"
|
|
75
|
+
```
|
|
76
|
+
- **Response**: JSON with matched venue names, acronyms, and DBLP venue URLs.
|
|
77
|
+
|
|
78
|
+
### Author Profile: Full Publication List
|
|
79
|
+
|
|
80
|
+
- **URL**: `GET https://dblp.org/pid/{pid}.json`
|
|
81
|
+
- **Parameters**:
|
|
82
|
+
| Param | Type | Required | Description |
|
|
83
|
+
|-------|------|----------|-------------|
|
|
84
|
+
| pid | string | Yes | DBLP person ID (e.g., h/GeoffreyEHinton) from author search results |
|
|
85
|
+
- **Example**:
|
|
86
|
+
```bash
|
|
87
|
+
curl "https://dblp.org/pid/h/GeoffreyEHinton.json"
|
|
88
|
+
```
|
|
89
|
+
- **Response**: JSON with full author profile including name variants, affiliation, and complete publication list with metadata.
|
|
90
|
+
|
|
91
|
+
## Rate Limits
|
|
92
|
+
|
|
93
|
+
No published rate limits. DBLP does not enforce strict API quotas. However, the service is provided by a non-profit institution with limited resources. Best practices include limiting requests to a reasonable rate (1-2 per second), using caching for repeated queries, and downloading the DBLP XML dump for large-scale analyses instead of querying the API repeatedly.
|
|
94
|
+
|
|
95
|
+
## Common Patterns
|
|
96
|
+
|
|
97
|
+
### Track an Author's Publication Record
|
|
98
|
+
|
|
99
|
+
Get a complete, chronological list of publications for a researcher:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# Step 1: Find the author's DBLP PID
|
|
103
|
+
curl "https://dblp.org/search/author/api?q=Jure+Leskovec&format=json&h=1"
|
|
104
|
+
|
|
105
|
+
# Step 2: Fetch their full profile
|
|
106
|
+
curl "https://dblp.org/pid/l/JureLeskovec.json"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Find Top Papers at a Conference
|
|
110
|
+
|
|
111
|
+
Search for publications at a specific venue in a given year:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
curl "https://dblp.org/search/publ/api?q=venue:ICML+year:2024&format=json&h=50"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Cross-Reference with DOI
|
|
118
|
+
|
|
119
|
+
Use DBLP records to find DOIs and link to other metadata sources:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
curl "https://dblp.org/search/publ/api?q=attention+is+all+you+need&format=json&h=1" | jq '.result.hits.hit[0].info.doi'
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## References
|
|
126
|
+
|
|
127
|
+
- Official documentation: https://dblp.org/faq/1474707.html
|
|
128
|
+
- DBLP XML dump: https://dblp.org/xml/
|
|
129
|
+
- DBLP statistics: https://dblp.org/statistics/
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: software-engineering-research
|
|
3
|
+
description: "Guide to software engineering research topics and methodologies"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "code"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "cs"
|
|
9
|
+
keywords: ["software engineering", "distributed systems", "cybersecurity", "HCI"]
|
|
10
|
+
source: "wentor-research-plugins"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Software Engineering Research Guide
|
|
14
|
+
|
|
15
|
+
Navigate the landscape of software engineering research, including key subfields, methodologies, datasets, benchmarks, and top venues.
|
|
16
|
+
|
|
17
|
+
## SE Research Subfields
|
|
18
|
+
|
|
19
|
+
| Subfield | Key Topics | Major Venues |
|
|
20
|
+
|----------|-----------|-------------|
|
|
21
|
+
| **Software Testing** | Test generation, fuzzing, mutation testing, flaky tests | ISSTA, ICST, ASE |
|
|
22
|
+
| **Program Analysis** | Static analysis, abstract interpretation, symbolic execution | PLDI, POPL, OOPSLA |
|
|
23
|
+
| **Software Maintenance** | Code refactoring, technical debt, code smells, evolution | ICSME, MSR, SANER |
|
|
24
|
+
| **SE for AI/ML** | ML pipeline testing, data quality, model debugging | ICSE-SEIP, FSE |
|
|
25
|
+
| **AI for SE** | Code generation, bug detection, program repair | ICSE, FSE, ASE |
|
|
26
|
+
| **Distributed Systems** | Consensus, fault tolerance, scalability, microservices | SOSP, OSDI, EuroSys |
|
|
27
|
+
| **Cybersecurity** | Vulnerability detection, malware analysis, privacy | IEEE S&P, CCS, USENIX Security |
|
|
28
|
+
| **HCI in SE** | Developer tools, IDE usability, code comprehension | CHI, CSCW, VL/HCC |
|
|
29
|
+
| **Empirical SE** | Mining repositories, developer surveys, controlled experiments | ESEM, MSR, TOSEM |
|
|
30
|
+
|
|
31
|
+
## Research Methodologies in SE
|
|
32
|
+
|
|
33
|
+
### Controlled Experiments
|
|
34
|
+
|
|
35
|
+
Testing a specific hypothesis with treatment and control groups:
|
|
36
|
+
|
|
37
|
+
```markdown
|
|
38
|
+
Example: Does AI code completion improve developer productivity?
|
|
39
|
+
|
|
40
|
+
Design:
|
|
41
|
+
- Participants: 60 professional developers
|
|
42
|
+
- Treatment: IDE with AI code completion enabled
|
|
43
|
+
- Control: IDE with AI code completion disabled
|
|
44
|
+
- Task: Complete 5 programming tasks of varying difficulty
|
|
45
|
+
- Metrics: Task completion time, code correctness, lines of code
|
|
46
|
+
- Analysis: Mixed-effects linear model with participant as random effect
|
|
47
|
+
|
|
48
|
+
Threats to validity:
|
|
49
|
+
- Internal: Learning effect (counterbalance task order)
|
|
50
|
+
- External: Lab setting may not reflect real development
|
|
51
|
+
- Construct: "Productivity" operationalized as speed + correctness
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Mining Software Repositories (MSR)
|
|
55
|
+
|
|
56
|
+
Analyzing data from version control, issue trackers, code review systems:
|
|
57
|
+
|
|
58
|
+
```python
|
|
59
|
+
# Example: Analyze commit patterns using PyDriller
|
|
60
|
+
from pydriller import Repository
|
|
61
|
+
|
|
62
|
+
repo_url = "https://github.com/apache/kafka"
|
|
63
|
+
|
|
64
|
+
commit_data = []
|
|
65
|
+
for commit in Repository(repo_url, since=datetime(2023, 1, 1),
|
|
66
|
+
to=datetime(2023, 12, 31)).traverse_commits():
|
|
67
|
+
commit_data.append({
|
|
68
|
+
"hash": commit.hash[:8],
|
|
69
|
+
"author": commit.author.name,
|
|
70
|
+
"date": commit.committer_date,
|
|
71
|
+
"files_changed": commit.files,
|
|
72
|
+
"insertions": commit.insertions,
|
|
73
|
+
"deletions": commit.deletions,
|
|
74
|
+
"message": commit.msg[:100]
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
df = pd.DataFrame(commit_data)
|
|
78
|
+
print(f"Total commits in 2023: {len(df)}")
|
|
79
|
+
print(f"Unique contributors: {df['author'].nunique()}")
|
|
80
|
+
print(f"Avg files per commit: {df['files_changed'].mean():.1f}")
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Case Studies
|
|
84
|
+
|
|
85
|
+
In-depth investigation of a phenomenon in its real-world context:
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
Case Study Protocol (based on Yin, 2018):
|
|
89
|
+
1. Research questions: How do teams adopt microservices?
|
|
90
|
+
2. Unit of analysis: Development teams at 3 companies
|
|
91
|
+
3. Data sources:
|
|
92
|
+
- Semi-structured interviews (8-12 per company)
|
|
93
|
+
- Architecture documentation review
|
|
94
|
+
- Commit history and deployment logs
|
|
95
|
+
- Meeting observations
|
|
96
|
+
4. Analysis: Thematic analysis with cross-case comparison
|
|
97
|
+
5. Validity: Triangulation across data sources, member checking
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Key Datasets and Benchmarks
|
|
101
|
+
|
|
102
|
+
### Code Understanding and Generation
|
|
103
|
+
|
|
104
|
+
| Benchmark | Task | Languages | Size |
|
|
105
|
+
|-----------|------|-----------|------|
|
|
106
|
+
| HumanEval | Code generation from docstrings | Python | 164 problems |
|
|
107
|
+
| MBPP | Code generation from descriptions | Python | 974 problems |
|
|
108
|
+
| SWE-bench | Real-world GitHub issue resolution | Python | 2,294 instances |
|
|
109
|
+
| CodeXGLUE | Multiple code tasks | 6 languages | Varies by task |
|
|
110
|
+
| BigCloneBench | Clone detection | Java | 6M clone pairs |
|
|
111
|
+
| Defects4J | Bug localization and repair | Java | 835 real bugs |
|
|
112
|
+
|
|
113
|
+
### Software Engineering Process
|
|
114
|
+
|
|
115
|
+
| Dataset | Content | Use Cases |
|
|
116
|
+
|---------|---------|-----------|
|
|
117
|
+
| GHTorrent | GitHub event data (commits, issues, PRs) | MSR studies |
|
|
118
|
+
| Software Heritage | Universal source code archive | Code evolution, provenance |
|
|
119
|
+
| Stack Overflow Data Dump | Q&A posts, tags, votes | Developer knowledge, NLP |
|
|
120
|
+
| CVE Database | Vulnerability records | Security research |
|
|
121
|
+
| Chrome/Firefox Bug Trackers | Bug reports, patches | Bug triage, severity prediction |
|
|
122
|
+
|
|
123
|
+
## Static Analysis Tools for Research
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
# Example: Using tree-sitter for AST-level code analysis
|
|
127
|
+
from tree_sitter import Language, Parser
|
|
128
|
+
import tree_sitter_python as tspython
|
|
129
|
+
|
|
130
|
+
PYTHON_LANGUAGE = Language(tspython.language())
|
|
131
|
+
parser = Parser(PYTHON_LANGUAGE)
|
|
132
|
+
|
|
133
|
+
source_code = b"""
|
|
134
|
+
def fibonacci(n):
|
|
135
|
+
if n <= 1:
|
|
136
|
+
return n
|
|
137
|
+
return fibonacci(n-1) + fibonacci(n-2)
|
|
138
|
+
"""
|
|
139
|
+
|
|
140
|
+
tree = parser.parse(source_code)
|
|
141
|
+
root = tree.root_node
|
|
142
|
+
|
|
143
|
+
def count_nodes(node, node_type):
|
|
144
|
+
"""Count AST nodes of a given type."""
|
|
145
|
+
count = 1 if node.type == node_type else 0
|
|
146
|
+
for child in node.children:
|
|
147
|
+
count += count_nodes(child, node_type)
|
|
148
|
+
return count
|
|
149
|
+
|
|
150
|
+
print(f"Function definitions: {count_nodes(root, 'function_definition')}")
|
|
151
|
+
print(f"If statements: {count_nodes(root, 'if_statement')}")
|
|
152
|
+
print(f"Return statements: {count_nodes(root, 'return_statement')}")
|
|
153
|
+
print(f"Function calls: {count_nodes(root, 'call')}")
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Code Metrics
|
|
157
|
+
|
|
158
|
+
```python
|
|
159
|
+
# Common software metrics
|
|
160
|
+
metrics = {
|
|
161
|
+
"Lines of Code (LOC)": "Total lines (including blanks and comments)",
|
|
162
|
+
"Cyclomatic Complexity": "Number of independent paths (McCabe, 1976)",
|
|
163
|
+
"Halstead Volume": "Based on operators and operands count",
|
|
164
|
+
"Maintainability Index": "Composite of LOC, CC, and Halstead",
|
|
165
|
+
"Coupling Between Objects": "Number of other classes referenced",
|
|
166
|
+
"Depth of Inheritance": "Levels in class hierarchy",
|
|
167
|
+
"Code Churn": "Lines added + modified + deleted per period",
|
|
168
|
+
"Comment Density": "Ratio of comment lines to total lines"
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
# Calculate cyclomatic complexity using radon
|
|
172
|
+
# pip install radon
|
|
173
|
+
import subprocess
|
|
174
|
+
result = subprocess.run(
|
|
175
|
+
["radon", "cc", "my_module.py", "-s", "-j"],
|
|
176
|
+
capture_output=True, text=True
|
|
177
|
+
)
|
|
178
|
+
print(result.stdout)
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## Top Venues and Impact
|
|
182
|
+
|
|
183
|
+
### Tier-1 SE Venues
|
|
184
|
+
|
|
185
|
+
| Venue | Type | Acceptance Rate | Focus |
|
|
186
|
+
|-------|------|-----------------|-------|
|
|
187
|
+
| ICSE | Conference | ~22% | Broad SE |
|
|
188
|
+
| FSE/ESEC | Conference | ~24% | Broad SE |
|
|
189
|
+
| ASE | Conference | ~22% | Automated SE |
|
|
190
|
+
| ISSTA | Conference | ~25% | Software testing |
|
|
191
|
+
| MSR | Conference | ~30% | Mining repositories |
|
|
192
|
+
| TOSEM | Journal | -- | Broad SE (ACM) |
|
|
193
|
+
| TSE | Journal | -- | Broad SE (IEEE) |
|
|
194
|
+
| EMSE | Journal | -- | Empirical SE (Springer) |
|
|
195
|
+
|
|
196
|
+
### Systems and Security Venues
|
|
197
|
+
|
|
198
|
+
| Venue | Type | Focus |
|
|
199
|
+
|-------|------|-------|
|
|
200
|
+
| SOSP/OSDI | Conference | Operating systems, distributed systems |
|
|
201
|
+
| EuroSys | Conference | Systems (Europe) |
|
|
202
|
+
| NSDI | Conference | Networked systems design |
|
|
203
|
+
| IEEE S&P (Oakland) | Conference | Security and privacy |
|
|
204
|
+
| USENIX Security | Conference | Security |
|
|
205
|
+
| CCS | Conference | Computer and communications security |
|
|
206
|
+
| NDSS | Conference | Network and distributed systems security |
|
|
207
|
+
|
|
208
|
+
## Research Tools Ecosystem
|
|
209
|
+
|
|
210
|
+
| Tool | Purpose | URL |
|
|
211
|
+
|------|---------|-----|
|
|
212
|
+
| PyDriller | Git repository mining (Python) | github.com/ishepard/pydriller |
|
|
213
|
+
| Radon | Python code metrics | github.com/rubik/radon |
|
|
214
|
+
| SonarQube | Multi-language static analysis | sonarqube.org |
|
|
215
|
+
| Understand | Code analysis and metrics | scitools.com |
|
|
216
|
+
| Joern | Code analysis platform (CPG) | joern.io |
|
|
217
|
+
| CodeQL | Semantic code analysis | codeql.github.com |
|
|
218
|
+
| tree-sitter | Incremental parsing library | tree-sitter.github.io |
|