学術引用ネットワークビルダー
中級
これはDocument Extraction, Multimodal AI分野の自動化ワークフローで、9個のノードを含みます。主にSet, Code, PdfVector, WriteBinaryFileなどのノードを使用。 PDFベクトルAPIを使って、Gephi可視化用の学術引用ネットワークを構築
前提条件
- •特別な前提条件なし、インポートしてすぐに使用可能
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"meta": {
"instanceId": "placeholder"
},
"nodes": [
{
"id": "config-note",
"name": "設定",
"type": "n8n-nodes-base.stickyNote",
"position": [
250,
150
],
"parameters": {
"content": "## Citation Network Builder\n\nInput: Paper IDs (DOI, PubMed ID, etc.)\nDepth: How many citation levels to explore\nOutput: Network graph data"
},
"typeVersion": 1
},
{
"id": "input-params",
"name": "パラメータ設定",
"type": "n8n-nodes-base.set",
"position": [
450,
300
],
"parameters": {
"values": {
"string": [
{
"name": "seedPapers",
"value": "10.1038/nature12373,12345678,2301.12345"
},
{
"name": "depth",
"value": "2"
}
]
}
},
"typeVersion": 1
},
{
"id": "split-ids",
"name": "論文ID分割",
"type": "n8n-nodes-base.code",
"position": [
650,
300
],
"parameters": {
"functionCode": "const papers = $json.seedPapers.split(',').map(id => ({ id: id.trim() }));\nreturn papers;"
},
"typeVersion": 1
},
{
"id": "pdfvector-fetch",
"name": "PDF Vector - 論文取得",
"type": "n8n-nodes-pdfvector.pdfVector",
"notes": "Fetch details for each paper",
"position": [
850,
300
],
"parameters": {
"ids": "={{ $json.id }}",
"fields": [
"title",
"authors",
"year",
"doi",
"abstract",
"totalCitations",
"totalReferences"
],
"resource": "academic",
"operation": "fetch"
},
"typeVersion": 1
},
{
"id": "fetch-citations",
"name": "引用論文取得",
"type": "n8n-nodes-pdfvector.pdfVector",
"position": [
1050,
300
],
"parameters": {
"limit": 20,
"query": "=references:{{ $json.doi }}",
"fields": [
"title",
"authors",
"year",
"doi",
"totalCitations"
],
"resource": "academic",
"operation": "search"
},
"typeVersion": 1
},
{
"id": "build-network",
"name": "ネットワークデータ構築",
"type": "n8n-nodes-base.code",
"position": [
1250,
300
],
"parameters": {
"functionCode": "// Build network nodes and edges\nconst nodes = [];\nconst edges = [];\n\n// Add main paper as node\nnodes.push({\n id: $json.doi || $json.id,\n label: $json.title,\n size: Math.log($json.totalCitations + 1) * 10,\n citations: $json.totalCitations,\n year: $json.year,\n type: 'seed'\n});\n\n// Add citing papers and edges\nif ($json.citingPapers) {\n $json.citingPapers.forEach(paper => {\n nodes.push({\n id: paper.doi,\n label: paper.title,\n size: Math.log(paper.totalCitations + 1) * 5,\n citations: paper.totalCitations,\n year: paper.year,\n type: 'citing'\n });\n \n edges.push({\n source: paper.doi,\n target: $json.doi || $json.id,\n weight: 1\n });\n });\n}\n\nreturn { nodes, edges };"
},
"typeVersion": 1
},
{
"id": "combine-network",
"name": "ネットワーク結合",
"type": "n8n-nodes-base.code",
"position": [
1450,
300
],
"parameters": {
"functionCode": "// Combine all nodes and edges from multiple papers\nconst allNodes = [];\nconst allEdges = [];\n\nitems.forEach(item => {\n if (item.json.nodes) {\n allNodes.push(...item.json.nodes);\n }\n if (item.json.edges) {\n allEdges.push(...item.json.edges);\n }\n});\n\n// Remove duplicate nodes based on ID\nconst uniqueNodes = Array.from(new Map(allNodes.map(node => [node.id, node])).values());\n\nreturn [{ json: { nodes: uniqueNodes, edges: allEdges } }];"
},
"typeVersion": 1
},
{
"id": "export-network",
"name": "Export Network JSON",
"type": "n8n-nodes-base.writeBinaryFile",
"position": [
1650,
300
],
"parameters": {
"fileName": "citation_network_{{ $now.format('yyyy-MM-dd') }}.json",
"fileContent": "={{ JSON.stringify({ nodes: $json.nodes, edges: $json.edges }, null, 2) }}"
},
"typeVersion": 1
},
{
"id": "generate-gexf",
"name": "GEXF生成",
"type": "n8n-nodes-base.code",
"position": [
1650,
450
],
"parameters": {
"functionCode": "// Generate Gephi-compatible GEXF format\nconst nodes = $json.nodes;\nconst edges = $json.edges;\n\nlet gexf = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<gexf xmlns=\"http://www.gexf.net/1.2draft\" version=\"1.2\">\n <graph mode=\"static\" defaultedgetype=\"directed\">\n <nodes>\\n`;\n\nnodes.forEach(node => {\n gexf += ` <node id=\"${node.id}\" label=\"${node.label}\">\n <attvalues>\n <attvalue for=\"citations\" value=\"${node.citations}\"/>\n <attvalue for=\"year\" value=\"${node.year}\"/>\n </attvalues>\n </node>\\n`;\n});\n\ngexf += ` </nodes>\n <edges>\\n`;\n\nedges.forEach((edge, i) => {\n gexf += ` <edge id=\"${i}\" source=\"${edge.source}\" target=\"${edge.target}\" weight=\"${edge.weight}\"/>\\n`;\n});\n\ngexf += ` </edges>\n </graph>\n</gexf>`;\n\nreturn { gexf };"
},
"typeVersion": 1
}
],
"connections": {
"input-params": {
"main": [
[
{
"node": "split-ids",
"type": "main",
"index": 0
}
]
]
},
"combine-network": {
"main": [
[
{
"node": "export-network",
"type": "main",
"index": 0
},
{
"node": "generate-gexf",
"type": "main",
"index": 0
}
]
]
},
"split-ids": {
"main": [
[
{
"node": "pdfvector-fetch",
"type": "main",
"index": 0
}
]
]
},
"build-network": {
"main": [
[
{
"node": "combine-network",
"type": "main",
"index": 0
}
]
]
},
"fetch-citations": {
"main": [
[
{
"node": "build-network",
"type": "main",
"index": 0
}
]
]
},
"pdfvector-fetch": {
"main": [
[
{
"node": "fetch-citations",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - 文書抽出, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
GPT-4と複数のデータベース検索を使った学術文献综述の自動化
GPT-4と複数のデータベース検索を使った学術文献レビューの自動化
If
Set
Code
+
If
Set
Code
13 ノードPDF Vector
文書抽出
GPT-4、PDFVector、PostgreSQLエクスポートを使用して文書からデータを抽出
ドキュメントからデータをGPT-4、PDFVector、PostgreSQLで出力する
Code
Open Ai
Switch
+
Code
Open Ai
Switch
9 ノードPDF Vector
文書抽出
五つのデータベースをまたいだ学术研究検索、PDFベクターと複数エクスポート
五つのデータベースを横断した学术研究検索、PDFベクターおよび複数のエクスポート
Set
Code
Pdf Vector
+
Set
Code
Pdf Vector
9 ノードPDF Vector
AI RAG検索拡張
PDF VectorとHIPAA準拠で医療文書から臨床データを抽出
PDF Vector と HIPAA 準拠を使用して医療文書から臨床データを抽出
If
Code
Postgres
+
If
Code
Postgres
9 ノードPDF Vector
文書抽出
自動化学術論文モニタリング(PDFベクトル化、GPT-3.5、Slack通知付き)
論文監視の自動化(PDFベクトル+GPT-3.5+Slackアラート)
Set
Code
Slack
+
Set
Code
Slack
10 ノードPDF Vector
個人の生産性
Google DriveとLLM解析を使用したバッチPDFからMarkdownへの変換
Google DriveとLLM駆動の解析でバッチPDFをMarkdownに変換
If
Set
Code
+
If
Set
Code
8 ノードPDF Vector
コンテンツ作成
ワークフロー情報
難易度
中級
ノード数9
カテゴリー2
ノードタイプ5
作成者
PDF Vector
@pdfvectorA fully featured PDF APIs for developers - Parse any PDF or Word document, extract structured data, and access millions of academic papers - all through simple APIs.
外部リンク
n8n.ioで表示 →
このワークフローを共有