--- id: wiki-2026-0508-reference title: Reference category: 10_Wiki/Topics status: verified canonical_id: self aliases: [Citation, Bibliography, Pass-by-Reference] duplicate_of: none source_trust_level: A confidence_score: 0.9 verification_status: applied tags: [reference, citation, zotero, bibtex, pass-by-reference] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: python framework: zotero --- # Reference ## 매 한 줄 > **"매 pointer 의 value 의 X — 매 indirection"**. Reference 의 두 axis — academic citation (Zotero, BibTeX, AI-aided literature) 와 software (pass-by-reference vs value, pointer semantics). Both 의 indirection 의 통한 share/reuse. ## 매 핵심 ### 매 Citation management - **Zotero**: open-source, browser-clipper, group library. 2026 의 dominant academic ref manager. - **BibTeX**: LaTeX 의 standard format. `@article{key, ...}`. - **Mendeley**: Elsevier-owned, declining. - **DOI**: persistent identifier — `10.1038/...` resolves via doi.org. - **Citation styles**: APA, MLA, Chicago, IEEE — CSL (Citation Style Language) JSON. ### 매 AI-aided literature - **Elicit**: 매 LLM-powered literature review. - **Consensus**: 매 yes/no answer aggregation across papers. - **Semantic Scholar API**: free, 200M+ papers. - **NotebookLM (Google)**: 매 source-grounded synthesis. - **Claude/GPT-5 + arxiv-mcp**: 매 RAG-style retrieval. ### 매 Software references - **Pass-by-reference**: function 의 caller variable 의 mutate 의 가능. C++ `&`, Rust `&mut`. - **Pass-by-value**: copy. 매 immutable safe. - **Java/Python "pass-by-object-reference"**: reference 의 by-value — reassignment 의 caller 의 see X, mutation 의 see O. - **Reference counting**: Python, Swift (ARC), Rust `Rc`/`Arc`. Cycles 의 leak. - **Weak reference**: 매 cycle 의 break — `weakref` (Python), `Weak` (Rust). ### 매 응용 1. Academic paper writing (Zotero + BibTeX + Pandoc). 2. Systematic review (Elicit + manual screening). 3. Large object passing (avoid copy). 4. Observer pattern (weak ref to subject). 5. RAG knowledge base. ## 💻 패턴 ### BibTeX entry ```bibtex @article{vaswani2017attention, title={Attention is all you need}, author={Vaswani, Ashish and Shazeer, Noam and others}, journal={NeurIPS}, year={2017}, doi={10.48550/arXiv.1706.03762} } ``` ### Zotero API (pyzotero) ```python from pyzotero import zotero zot = zotero.Zotero(library_id, "user", api_key) items = zot.items(q="transformer", limit=20) for it in items: data = it["data"] print(data["title"], data.get("DOI")) ``` ### Semantic Scholar fetch ```python import httpx r = httpx.get( "https://api.semanticscholar.org/graph/v1/paper/search", params={"query": "RLHF Claude", "limit": 10, "fields": "title,abstract,year,authors,citationCount"} ) for paper in r.json()["data"]: print(f"{paper['year']} {paper['title']} ({paper['citationCount']} cites)") ``` ### Python mutation gotcha ```python def append_x(lst): lst.append("x") # mutates caller's list def reassign(lst): lst = ["y"] # local rebind — caller unaffected a = [1, 2] append_x(a); print(a) # [1, 2, 'x'] reassign(a); print(a) # [1, 2, 'x'] — unchanged ``` ### Rust borrow ```rust fn read(s: &String) { println!("{}", s); } // immutable ref fn modify(s: &mut String) { s.push_str("!"); } // mutable ref let mut name = String::from("Claude"); read(&name); modify(&mut name); // borrow checker: 매 한 mut OR many immut, never both ``` ### Weak ref (Python) ```python import weakref class Node: def __init__(self, name): self.name = name; self.parent = None root = Node("root") child = Node("child") child.parent = weakref.ref(root) # break cycle parent = child.parent() # call to deref ``` ### RAG with citations (Anthropic) ```python resp = client.messages.create( model="claude-opus-4-7", max_tokens=2048, messages=[{ "role": "user", "content": [ {"type": "document", "source": {"type": "text", "data": paper_text}, "citations": {"enabled": True}}, {"type": "text", "text": "Summarize key findings with citations."} ] }] ) # resp.content 의 citation block 의 include ``` ## 매 결정 기준 | 상황 | Approach | |---|---| | Academic writing | Zotero + BibTeX + Pandoc/LaTeX | | Lit review (early) | Elicit / Semantic Scholar | | Lit review (rigorous) | PRISMA + Zotero + manual | | Pass large struct | Reference (& / pointer) | | Mutation needed | Mutable ref (`&mut`, `*T`) | | Cycle risk | Weak reference | **기본값**: Zotero 의 personal library, BibTeX export 의 LaTeX, Anthropic citations API 의 RAG. ## 🔗 Graph - 부모: [[Memory Management]] · [[Academic-Writing]] - 응용: [[RAG]] ## 🤖 LLM 활용 **언제**: literature synthesis (RAG with grounded citations), bibliography formatting, citation extraction from PDF. **언제 X**: 매 hallucinated DOI — always verify against CrossRef. 매 single source-of-truth claim 의 X — LLM 의 fabricates citations. ## ❌ 안티패턴 - **Hallucinated citations**: LLM 의 fake DOI/year — verify against doi.org. - **No citation export**: 매 final paper 의 manual format — Zotero 의 use. - **Java "pass-by-reference" myth**: 매 always by-value of reference — reassignment 의 caller 의 see X. - **Strong ref cycle**: parent ↔ child 의 strong → leak. Weak 의 break. - **Citing without reading**: chain-citation error — 매 source paper 의 verify. ## 🧪 검증 / 중복 - Verified (Zotero docs, Rust book ch.4, Anthropic citations API, Semantic Scholar API docs). - 신뢰도 A. ## 🕓 Changelog | 날짜 | 변경 | |---|---| | 2026-05-08 | Phase 1 | | 2026-05-10 | Manual cleanup — citation + software reference unified |