Neo4J直接集成的尾注🔬📊
  
将您的EndNote参考库转换为功能强大、可查询的Neo4J知识图,具有自动假设链接和无限的研究功能。
🎯 为什么存在
通过MCP(模型上下文协议)服务器的传统EndNote访问是 脆弱、有限、缓慢该工具提供了一种强大的替代方案:
- ⚡ 速度提高50至100倍 查询(毫秒vs秒)
- 🔒 100%可靠 -无需重启、无需备份、无故障
- 🚀 无限查询能力 -完整的Cypher语言与有限的工具API
- 🧬 知识图集成 -自动假设链接
- 📚 零制造风险 -所有引用均已从您的EndNote库中验证
- 💾 永久存储 -引用在Neo4J中持续存在
✨ 特性
核心能力
- 📖 直接访问SQLite:无需中介即可读取EndNote.enl文件
- 🗄️ Neo4j集成:作为可查询证据节点的永久存储
- 🔗 自动链接:创建引用→基于关键字的假设关系
- 🏷️ 智能分类:按研究区域自动标记(可定制)
- 📝 引文生成:温哥华式引文,含PMID/DOI提取
- 🔍 元数据抽取:作者、摘要、关键字、完整的书目数据
高性能
- 🧮 图形分析:利用Neo4j的图形算法
- 🌐 跨学科发现:查找跨多个领域的论文
- 📊 时间分析:跟踪出版趋势和研究进展
- 🎯 证据映射:自动将文献与研究假设联系起来
- 🔬 知识差距检测:识别不受支持的假设
- 📈 作者网络:分析合著模式
🏗️ 建筑
graph LR
A[EndNote Library
.enl SQLite] -->|Direct Read| B[Python Importer]
B -->|Extract & Classify| C[Reference Nodes]
C -->|Store| D[Neo4j Graph Database]
E[Hypothesis Nodes
Optional] -->|Auto-Link| C
D -->|Cypher Queries| F[Research Insights]
D -->|Graph Algorithms| G[Network Analysis]
style A fill:#e1f5ff
style D fill:#ff9999
style F fill:#99ff99数据流
sequenceDiagram
participant E as EndNote Library
participant P as Python Script
participant N as Neo4j Database
participant U as Researcher
P->>E: Connect to SQLite
E-->>P: Return references
P->>P: Extract PMID, DOI, metadata
P->>P: Classify by research area
P->>N: Create Reference nodes
P->>N: Link to existing Hypotheses (optional)
N-->>P: Confirm links created
U->>N: Execute Cypher query
N-->>U: Return results in = 2020
RETURN r.title, r.first_author, r.year, r.citation
ORDER BY r.year DESC
LIMIT 20
-- Find papers by author
MATCH (r:Reference)
WHERE r.first_author CONTAINS 'Smith'
RETURN r.title, r.year, r.journal, r.pmid, r.doi高级研究查询
-- Find interdisciplinary papers (multiple tags)
MATCH (r:Reference)
WHERE size(r.disciplinary_tags) >= 3
RETURN r.title, r.disciplinary_tags, r.year, r.citation
ORDER BY size(r.disciplinary_tags) DESC
LIMIT 10
-- Search abstracts for specific concepts
MATCH (r:Reference)
WHERE toLower(r.abstract) CONTAINS 'machine learning'
AND toInteger(r.year) >= 2020
RETURN r.title, r.citation, r.year
ORDER BY r.year DESC
-- Find papers with both PMID and DOI
MATCH (r:Reference)
WHERE r.pmid IS NOT NULL AND r.doi IS NOT NULL
RETURN r.title, r.pmid, r.doi, r.citation
LIMIT 10
-- Generate literature review by topic
MATCH (r:Reference)
WHERE any(kw IN r.keywords WHERE toLower(kw) CONTAINS 'cancer')
WITH r,
CASE
WHEN toLower(r.abstract) CONTAINS 'treatment' THEN 'Treatment'
WHEN toLower(r.abstract) CONTAINS 'diagnosis' THEN 'Diagnosis'
WHEN toLower(r.abstract) CONTAINS 'prevention' THEN 'Prevention'
ELSE 'General'
END as theme
RETURN theme, count(r) as papers,
collect(r.citation)[0..5] as sample_citations
ORDER BY papers DESC知识图谱集成
如果你的图中有假设节点:
-- Find evidence supporting specific hypothesis
MATCH (r:Reference)-[s:SUPPORTS]->(h:Hypothesis)
WHERE h.label CONTAINS 'your hypothesis topic'
RETURN r.title, r.citation, s.strength, s.match_basis
ORDER BY s.strength DESC
LIMIT 10
-- Audit citation coverage for all hypotheses
MATCH (h:Hypothesis)
OPTIONAL MATCH (r:Reference)-[s:SUPPORTS]->(h)
WITH h, count(r) as ref_count
RETURN h.label, ref_count,
CASE
WHEN ref_count = 0 THEN 'No support'
WHEN ref_count = 2015
RETURN r.year, count(r) as publications
ORDER BY r.year
-- Most prolific authors
MATCH (r:Reference)
UNWIND r.authors as author
RETURN author, count(r) as papers
ORDER BY papers DESC
LIMIT 20
-- Keyword trends
MATCH (r:Reference)
WHERE toInteger(r.year) >= 2020
UNWIND r.keywords as keyword
RETURN keyword, count(*) as frequency
ORDER BY frequency DESC
LIMIT 30📈 性能比较
| 度量 | MCP服务器 | 直接导入 | 改进 |
|---|---|---|---|
| 设置时间 | 2小时 | 15分钟 | 快8倍 |
| 查询速度 | 2-5秒 | \ Tuple[str, List[str]]: |
text_to_analyze = f"{ref['title']} {ref['abstract']} {ref['keywords']}".lower() tags = []
# Add YOUR custom keywords if 'your_keyword' in text_to_analyze: tags.append('Your_Research_Area')
if 'another_keyword' in text_to_analyze: tags.append('Another_Area')
# Determine primary area if 'Your_Research_Area' in tags: primary_area = 'Your_Research_Area' else: primary_area = 'General Research'
return primary_area, list(set(tags))
### 修改置信度评分
根据您的标准调整质量指标:
e.conf_empirical = 0.95, # For high-quality empirical data e.conf_theoretical = 0.85, # For theoretical soundness e.conf_methodological = 0.90, # For methodological rigor e.conf_consensus = 0.80 # For field consensus
### 添加自定义关系
创建支持之外的其他链接类型:
In link_references_to_hypotheses() or in custom queries
CREATE (r)-[:CONTRADICTS]->(h) CREATE (r)-[:VALIDATES]->(h) CREATE (r)-[:EXTENDS]->(h) CREATE (r)-[:CHALLENGES]->(h)
## 🤝 贡献
欢迎投稿!请随时提交拉取请求。
### 开发设置
git clone https://github.com/YOUR_USERNAME/endnote-neo4j-integration.git cd endnote-neo4j-integration
Install dev dependencies
pip install neo4j pytest
Run tests (if implemented)
pytest tests/
### 路线图
- \[\]支持BibTeX导入
- \[\]支持Zotero库
- \[\]门捷利积分
- \[\]PDF全文提取和搜索
- \[\]作者协作网络可视化
- \[\]引文网络分析
- \[\]用于构建查询的Web界面
- \[\]通过文件监控自动更新
- \[\]Docker容器化
## 📝 许可证
此项目根据MIT许可证获得许可-请参阅 [许可证](LICENSE) 文件以获取详细信息。
## 🙏 致谢
- 专为需要强大、快速访问参考库的研究人员而设计
- 受到脆弱的MCP服务器架构的挫折的启发
- 旨在与知识图谱框架和研究管理系统集成
## 📧 支持
- **问题**:
- **讨论**:
- **文档**:请参阅此README和内联代码注释
## ❓ 常见问题解答
**Q: 这会修改我的EndNote库吗?**\
A: 不!仅脚本 *读取* 您的EndNote数据库。它从不写入或修改您的.enl文件。
**Q: 如果我没有假设节点怎么办?**\
A: 很好!脚本仍将导入所有引用。自动链接步骤根本不会创建任何链接,您可以跳过该功能。
**Q: 我应该多久重新进口一次?**\
A: 每当您向EndNote添加大量新引用时。许多研究人员每月或在主要文献检索后重新导入。
**Q: 我可以在EndNote Online上使用这个吗?**\
A: 此工具适用于EndNote Desktop(.enl文件)。EndNote Online使用不同的格式,目前不受支持。
**Q: 其他参考经理呢?**\
A: 目前仅支持EndNote。BibTeX和Zotero支持已在路线图上。
**Q: 我的数据安全吗?**\
A: 您的EndNote库和Neo4J凭据将保留在您的计算机上 `config.py`,它被排除在git之外。永不承诺 `config.py` 版本控制!
______________________________________________________________________
**立即将您的EndNote库转化为强大的知识图谱!** 🚀
由...制作❤️ 对于那些重视速度、可靠性和无限查询能力的研究人员来说。