@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.
Files changed (252) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +204 -0
  3. package/curated/analysis/README.md +64 -0
  4. package/curated/domains/README.md +104 -0
  5. package/curated/literature/README.md +53 -0
  6. package/curated/research/README.md +62 -0
  7. package/curated/tools/README.md +87 -0
  8. package/curated/writing/README.md +61 -0
  9. package/index.ts +39 -0
  10. package/mcp-configs/academic-db/ChatSpatial.json +17 -0
  11. package/mcp-configs/academic-db/academia-mcp.json +17 -0
  12. package/mcp-configs/academic-db/academic-paper-explorer.json +17 -0
  13. package/mcp-configs/academic-db/academic-search-mcp-server.json +17 -0
  14. package/mcp-configs/academic-db/agentinterviews-mcp.json +17 -0
  15. package/mcp-configs/academic-db/all-in-mcp.json +17 -0
  16. package/mcp-configs/academic-db/apple-health-mcp.json +17 -0
  17. package/mcp-configs/academic-db/arxiv-latex-mcp.json +17 -0
  18. package/mcp-configs/academic-db/arxiv-mcp-server.json +17 -0
  19. package/mcp-configs/academic-db/bgpt-mcp.json +17 -0
  20. package/mcp-configs/academic-db/biomcp.json +17 -0
  21. package/mcp-configs/academic-db/biothings-mcp.json +17 -0
  22. package/mcp-configs/academic-db/catalysishub-mcp-server.json +17 -0
  23. package/mcp-configs/academic-db/clinicaltrialsgov-mcp-server.json +17 -0
  24. package/mcp-configs/academic-db/deep-research-mcp.json +17 -0
  25. package/mcp-configs/academic-db/dicom-mcp.json +17 -0
  26. package/mcp-configs/academic-db/enrichr-mcp-server.json +17 -0
  27. package/mcp-configs/academic-db/fec-mcp-server.json +17 -0
  28. package/mcp-configs/academic-db/fhir-mcp-server-themomentum.json +17 -0
  29. package/mcp-configs/academic-db/fhir-mcp.json +19 -0
  30. package/mcp-configs/academic-db/gget-mcp.json +17 -0
  31. package/mcp-configs/academic-db/google-researcher-mcp.json +17 -0
  32. package/mcp-configs/academic-db/idea-reality-mcp.json +17 -0
  33. package/mcp-configs/academic-db/legiscan-mcp.json +19 -0
  34. package/mcp-configs/academic-db/lex.json +17 -0
  35. package/mcp-configs/ai-platform/Adaptive-Graph-of-Thoughts-MCP-server.json +17 -0
  36. package/mcp-configs/ai-platform/ai-counsel.json +17 -0
  37. package/mcp-configs/ai-platform/atlas-mcp-server.json +17 -0
  38. package/mcp-configs/ai-platform/counsel-mcp.json +17 -0
  39. package/mcp-configs/ai-platform/cross-llm-mcp.json +17 -0
  40. package/mcp-configs/ai-platform/gptr-mcp.json +17 -0
  41. package/mcp-configs/browser/decipher-research-agent.json +17 -0
  42. package/mcp-configs/browser/deep-research.json +17 -0
  43. package/mcp-configs/browser/everything-claude-code.json +17 -0
  44. package/mcp-configs/browser/gpt-researcher.json +17 -0
  45. package/mcp-configs/browser/heurist-agent-framework.json +17 -0
  46. package/mcp-configs/data-platform/4everland-hosting-mcp.json +17 -0
  47. package/mcp-configs/data-platform/context-keeper.json +17 -0
  48. package/mcp-configs/data-platform/context7.json +19 -0
  49. package/mcp-configs/data-platform/contextstream-mcp.json +17 -0
  50. package/mcp-configs/data-platform/email-mcp.json +17 -0
  51. package/mcp-configs/note-knowledge/ApeRAG.json +17 -0
  52. package/mcp-configs/note-knowledge/In-Memoria.json +17 -0
  53. package/mcp-configs/note-knowledge/agent-memory.json +17 -0
  54. package/mcp-configs/note-knowledge/aimemo.json +17 -0
  55. package/mcp-configs/note-knowledge/biel-mcp.json +19 -0
  56. package/mcp-configs/note-knowledge/cognee.json +17 -0
  57. package/mcp-configs/note-knowledge/context-awesome.json +17 -0
  58. package/mcp-configs/note-knowledge/context-mcp.json +17 -0
  59. package/mcp-configs/note-knowledge/conversation-handoff-mcp.json +17 -0
  60. package/mcp-configs/note-knowledge/cortex.json +17 -0
  61. package/mcp-configs/note-knowledge/devrag.json +17 -0
  62. package/mcp-configs/note-knowledge/easy-obsidian-mcp.json +17 -0
  63. package/mcp-configs/note-knowledge/engram.json +17 -0
  64. package/mcp-configs/note-knowledge/gnosis-mcp.json +17 -0
  65. package/mcp-configs/note-knowledge/graphlit-mcp-server.json +19 -0
  66. package/mcp-configs/reference-mgr/arxiv-cli.json +17 -0
  67. package/mcp-configs/reference-mgr/arxiv-search-mcp.json +17 -0
  68. package/mcp-configs/reference-mgr/chiken.json +17 -0
  69. package/mcp-configs/reference-mgr/claude-scholar.json +17 -0
  70. package/mcp-configs/reference-mgr/devonthink-mcp.json +17 -0
  71. package/mcp-configs/registry.json +447 -0
  72. package/openclaw.plugin.json +21 -0
  73. package/package.json +61 -0
  74. package/skills/analysis/dataviz/color-accessibility-guide/SKILL.md +230 -0
  75. package/skills/analysis/dataviz/geospatial-viz-guide/SKILL.md +218 -0
  76. package/skills/analysis/dataviz/interactive-viz-guide/SKILL.md +287 -0
  77. package/skills/analysis/dataviz/network-visualization-guide/SKILL.md +195 -0
  78. package/skills/analysis/dataviz/publication-figures-guide/SKILL.md +238 -0
  79. package/skills/analysis/dataviz/python-dataviz-guide/SKILL.md +195 -0
  80. package/skills/analysis/econometrics/causal-inference-guide/SKILL.md +197 -0
  81. package/skills/analysis/econometrics/iv-regression-guide/SKILL.md +198 -0
  82. package/skills/analysis/econometrics/panel-data-guide/SKILL.md +274 -0
  83. package/skills/analysis/econometrics/robustness-checks/SKILL.md +250 -0
  84. package/skills/analysis/econometrics/stata-regression/SKILL.md +117 -0
  85. package/skills/analysis/econometrics/time-series-guide/SKILL.md +235 -0
  86. package/skills/analysis/statistics/bayesian-statistics-guide/SKILL.md +221 -0
  87. package/skills/analysis/statistics/hypothesis-testing-guide/SKILL.md +210 -0
  88. package/skills/analysis/statistics/meta-analysis-guide/SKILL.md +206 -0
  89. package/skills/analysis/statistics/nonparametric-tests-guide/SKILL.md +221 -0
  90. package/skills/analysis/statistics/power-analysis-guide/SKILL.md +240 -0
  91. package/skills/analysis/statistics/sem-guide/SKILL.md +231 -0
  92. package/skills/analysis/statistics/survival-analysis-guide/SKILL.md +195 -0
  93. package/skills/analysis/wrangling/missing-data-handling/SKILL.md +224 -0
  94. package/skills/analysis/wrangling/pandas-data-wrangling/SKILL.md +242 -0
  95. package/skills/analysis/wrangling/questionnaire-design-guide/SKILL.md +234 -0
  96. package/skills/analysis/wrangling/text-mining-guide/SKILL.md +225 -0
  97. package/skills/domains/ai-ml/computer-vision-guide/SKILL.md +213 -0
  98. package/skills/domains/ai-ml/deep-learning-papers-guide/SKILL.md +200 -0
  99. package/skills/domains/ai-ml/llm-evaluation-guide/SKILL.md +194 -0
  100. package/skills/domains/ai-ml/prompt-engineering-research/SKILL.md +233 -0
  101. package/skills/domains/ai-ml/reinforcement-learning-guide/SKILL.md +254 -0
  102. package/skills/domains/ai-ml/transformer-architecture-guide/SKILL.md +233 -0
  103. package/skills/domains/biomedical/clinical-research-guide/SKILL.md +232 -0
  104. package/skills/domains/biomedical/clinicaltrials-api/SKILL.md +177 -0
  105. package/skills/domains/biomedical/epidemiology-guide/SKILL.md +200 -0
  106. package/skills/domains/biomedical/genomics-analysis-guide/SKILL.md +270 -0
  107. package/skills/domains/business/market-analysis-guide/SKILL.md +112 -0
  108. package/skills/domains/business/strategic-management-guide/SKILL.md +154 -0
  109. package/skills/domains/chemistry/computational-chemistry-guide/SKILL.md +266 -0
  110. package/skills/domains/chemistry/retrosynthesis-guide/SKILL.md +215 -0
  111. package/skills/domains/cs/algorithms-complexity-guide/SKILL.md +194 -0
  112. package/skills/domains/cs/dblp-api/SKILL.md +129 -0
  113. package/skills/domains/cs/software-engineering-research/SKILL.md +218 -0
  114. package/skills/domains/ecology/biodiversity-data-guide/SKILL.md +296 -0
  115. package/skills/domains/ecology/conservation-biology-guide/SKILL.md +198 -0
  116. package/skills/domains/ecology/gbif-api/SKILL.md +158 -0
  117. package/skills/domains/ecology/inaturalist-api/SKILL.md +173 -0
  118. package/skills/domains/economics/behavioral-economics-guide/SKILL.md +239 -0
  119. package/skills/domains/economics/development-economics-guide/SKILL.md +181 -0
  120. package/skills/domains/economics/fred-api/SKILL.md +189 -0
  121. package/skills/domains/education/curriculum-design-guide/SKILL.md +144 -0
  122. package/skills/domains/education/learning-science-guide/SKILL.md +150 -0
  123. package/skills/domains/finance/financial-data-analysis/SKILL.md +152 -0
  124. package/skills/domains/finance/quantitative-finance-guide/SKILL.md +151 -0
  125. package/skills/domains/geoscience/climate-science-guide/SKILL.md +158 -0
  126. package/skills/domains/geoscience/gis-remote-sensing-guide/SKILL.md +129 -0
  127. package/skills/domains/humanities/digital-humanities-guide/SKILL.md +181 -0
  128. package/skills/domains/humanities/philosophy-research-guide/SKILL.md +148 -0
  129. package/skills/domains/law/courtlistener-api/SKILL.md +213 -0
  130. package/skills/domains/law/legal-research-guide/SKILL.md +250 -0
  131. package/skills/domains/math/linear-algebra-applications/SKILL.md +227 -0
  132. package/skills/domains/math/numerical-methods-guide/SKILL.md +236 -0
  133. package/skills/domains/math/oeis-api/SKILL.md +158 -0
  134. package/skills/domains/pharma/clinical-pharmacology-guide/SKILL.md +165 -0
  135. package/skills/domains/pharma/drug-development-guide/SKILL.md +177 -0
  136. package/skills/domains/physics/computational-physics-guide/SKILL.md +300 -0
  137. package/skills/domains/physics/nasa-ads-api/SKILL.md +150 -0
  138. package/skills/domains/physics/quantum-computing-guide/SKILL.md +234 -0
  139. package/skills/domains/social-science/social-research-methods/SKILL.md +194 -0
  140. package/skills/domains/social-science/survey-research-guide/SKILL.md +182 -0
  141. package/skills/literature/discovery/citation-alert-guide/SKILL.md +154 -0
  142. package/skills/literature/discovery/conference-proceedings-guide/SKILL.md +142 -0
  143. package/skills/literature/discovery/literature-mapping-guide/SKILL.md +175 -0
  144. package/skills/literature/discovery/paper-tracking-guide/SKILL.md +211 -0
  145. package/skills/literature/discovery/rss-paper-feeds/SKILL.md +214 -0
  146. package/skills/literature/discovery/semantic-scholar-recs-guide/SKILL.md +164 -0
  147. package/skills/literature/fulltext/doaj-api/SKILL.md +120 -0
  148. package/skills/literature/fulltext/interlibrary-loan-guide/SKILL.md +163 -0
  149. package/skills/literature/fulltext/open-access-guide/SKILL.md +183 -0
  150. package/skills/literature/fulltext/pmc-oai-api/SKILL.md +184 -0
  151. package/skills/literature/fulltext/preprint-servers-guide/SKILL.md +128 -0
  152. package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +207 -0
  153. package/skills/literature/fulltext/unpaywall-api/SKILL.md +113 -0
  154. package/skills/literature/metadata/altmetrics-guide/SKILL.md +132 -0
  155. package/skills/literature/metadata/citation-network-guide/SKILL.md +236 -0
  156. package/skills/literature/metadata/crossref-api/SKILL.md +133 -0
  157. package/skills/literature/metadata/datacite-api/SKILL.md +126 -0
  158. package/skills/literature/metadata/doi-resolution-guide/SKILL.md +168 -0
  159. package/skills/literature/metadata/h-index-guide/SKILL.md +183 -0
  160. package/skills/literature/metadata/journal-metrics-guide/SKILL.md +188 -0
  161. package/skills/literature/metadata/opencitations-api/SKILL.md +128 -0
  162. package/skills/literature/metadata/orcid-api/SKILL.md +136 -0
  163. package/skills/literature/metadata/orcid-integration-guide/SKILL.md +178 -0
  164. package/skills/literature/search/arxiv-api/SKILL.md +95 -0
  165. package/skills/literature/search/biorxiv-api/SKILL.md +123 -0
  166. package/skills/literature/search/boolean-search-guide/SKILL.md +199 -0
  167. package/skills/literature/search/citation-chaining-guide/SKILL.md +148 -0
  168. package/skills/literature/search/database-comparison-guide/SKILL.md +100 -0
  169. package/skills/literature/search/europe-pmc-api/SKILL.md +120 -0
  170. package/skills/literature/search/google-scholar-guide/SKILL.md +182 -0
  171. package/skills/literature/search/mesh-terms-guide/SKILL.md +164 -0
  172. package/skills/literature/search/openalex-api/SKILL.md +134 -0
  173. package/skills/literature/search/pubmed-api/SKILL.md +130 -0
  174. package/skills/literature/search/scientify-literature-survey/SKILL.md +203 -0
  175. package/skills/literature/search/semantic-scholar-api/SKILL.md +134 -0
  176. package/skills/literature/search/systematic-search-strategy/SKILL.md +214 -0
  177. package/skills/research/automation/ai-scientist-guide/SKILL.md +228 -0
  178. package/skills/research/automation/data-collection-automation/SKILL.md +248 -0
  179. package/skills/research/automation/research-workflow-automation/SKILL.md +266 -0
  180. package/skills/research/deep-research/meta-synthesis-guide/SKILL.md +174 -0
  181. package/skills/research/deep-research/research-cog/SKILL.md +153 -0
  182. package/skills/research/deep-research/scoping-review-guide/SKILL.md +217 -0
  183. package/skills/research/deep-research/systematic-review-guide/SKILL.md +250 -0
  184. package/skills/research/funding/figshare-api/SKILL.md +163 -0
  185. package/skills/research/funding/grant-writing-guide/SKILL.md +233 -0
  186. package/skills/research/funding/nsf-grant-guide/SKILL.md +206 -0
  187. package/skills/research/funding/open-science-guide/SKILL.md +255 -0
  188. package/skills/research/funding/zenodo-api/SKILL.md +174 -0
  189. package/skills/research/methodology/action-research-guide/SKILL.md +201 -0
  190. package/skills/research/methodology/experimental-design-guide/SKILL.md +236 -0
  191. package/skills/research/methodology/grad-school-guide/SKILL.md +182 -0
  192. package/skills/research/methodology/grounded-theory-guide/SKILL.md +171 -0
  193. package/skills/research/methodology/mixed-methods-guide/SKILL.md +208 -0
  194. package/skills/research/methodology/qualitative-research-guide/SKILL.md +234 -0
  195. package/skills/research/methodology/scientify-idea-generation/SKILL.md +222 -0
  196. package/skills/research/paper-review/paper-reading-assistant/SKILL.md +266 -0
  197. package/skills/research/paper-review/peer-review-guide/SKILL.md +227 -0
  198. package/skills/research/paper-review/rebuttal-writing-guide/SKILL.md +185 -0
  199. package/skills/research/paper-review/scientify-write-review-paper/SKILL.md +209 -0
  200. package/skills/tools/code-exec/jupyter-notebook-guide/SKILL.md +178 -0
  201. package/skills/tools/code-exec/python-reproducibility-guide/SKILL.md +341 -0
  202. package/skills/tools/code-exec/r-reproducibility-guide/SKILL.md +236 -0
  203. package/skills/tools/code-exec/sandbox-execution-guide/SKILL.md +221 -0
  204. package/skills/tools/diagram/mermaid-diagram-guide/SKILL.md +269 -0
  205. package/skills/tools/diagram/plantuml-guide/SKILL.md +397 -0
  206. package/skills/tools/diagram/scientific-illustration-guide/SKILL.md +225 -0
  207. package/skills/tools/document/anystyle-api/SKILL.md +199 -0
  208. package/skills/tools/document/grobid-pdf-parsing/SKILL.md +294 -0
  209. package/skills/tools/document/markdown-academic-guide/SKILL.md +217 -0
  210. package/skills/tools/document/pdf-extraction-guide/SKILL.md +321 -0
  211. package/skills/tools/knowledge-graph/knowledge-graph-construction/SKILL.md +306 -0
  212. package/skills/tools/knowledge-graph/ontology-design-guide/SKILL.md +214 -0
  213. package/skills/tools/knowledge-graph/rag-methodology-guide/SKILL.md +325 -0
  214. package/skills/tools/ocr-translate/formula-recognition-guide/SKILL.md +367 -0
  215. package/skills/tools/ocr-translate/handwriting-recognition-guide/SKILL.md +211 -0
  216. package/skills/tools/ocr-translate/latex-ocr-guide/SKILL.md +204 -0
  217. package/skills/tools/ocr-translate/multilingual-research-guide/SKILL.md +234 -0
  218. package/skills/tools/scraping/academic-web-scraping/SKILL.md +326 -0
  219. package/skills/tools/scraping/api-data-collection-guide/SKILL.md +301 -0
  220. package/skills/tools/scraping/web-scraping-ethics-guide/SKILL.md +250 -0
  221. package/skills/writing/citation/bibtex-management-guide/SKILL.md +246 -0
  222. package/skills/writing/citation/citation-style-guide/SKILL.md +248 -0
  223. package/skills/writing/citation/reference-manager-comparison/SKILL.md +208 -0
  224. package/skills/writing/citation/zotero-api/SKILL.md +188 -0
  225. package/skills/writing/composition/abstract-writing-guide/SKILL.md +188 -0
  226. package/skills/writing/composition/discussion-writing-guide/SKILL.md +194 -0
  227. package/skills/writing/composition/introduction-writing-guide/SKILL.md +194 -0
  228. package/skills/writing/composition/literature-review-writing/SKILL.md +196 -0
  229. package/skills/writing/composition/methods-section-guide/SKILL.md +185 -0
  230. package/skills/writing/composition/response-to-reviewers/SKILL.md +215 -0
  231. package/skills/writing/composition/scientific-writing-guide/SKILL.md +152 -0
  232. package/skills/writing/latex/bibliography-management-guide/SKILL.md +206 -0
  233. package/skills/writing/latex/latex-drawing-guide/SKILL.md +234 -0
  234. package/skills/writing/latex/latex-ecosystem-guide/SKILL.md +240 -0
  235. package/skills/writing/latex/math-typesetting-guide/SKILL.md +231 -0
  236. package/skills/writing/latex/overleaf-collaboration-guide/SKILL.md +211 -0
  237. package/skills/writing/latex/tikz-diagrams-guide/SKILL.md +211 -0
  238. package/skills/writing/polish/academic-translation-guide/SKILL.md +175 -0
  239. package/skills/writing/polish/academic-writing-refiner/SKILL.md +143 -0
  240. package/skills/writing/polish/ai-writing-humanizer/SKILL.md +178 -0
  241. package/skills/writing/polish/grammar-checker-guide/SKILL.md +184 -0
  242. package/skills/writing/polish/plagiarism-detection-guide/SKILL.md +167 -0
  243. package/skills/writing/templates/beamer-presentation-guide/SKILL.md +263 -0
  244. package/skills/writing/templates/conference-paper-template/SKILL.md +219 -0
  245. package/skills/writing/templates/thesis-template-guide/SKILL.md +200 -0
  246. package/skills/writing/templates/thesis-writing-guide/SKILL.md +220 -0
  247. package/src/tools/arxiv.ts +131 -0
  248. package/src/tools/crossref.ts +112 -0
  249. package/src/tools/openalex.ts +174 -0
  250. package/src/tools/pubmed.ts +166 -0
  251. package/src/tools/semantic-scholar.ts +108 -0
  252. 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 |