--- layout: default title: "מקור החילוץ: מודל תת-גרף" parent: "Hebrew (Beta)" --- # מקור החילוץ: מודל תת-גרף > **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta. ## בעיה מעקב מקורות מידע בזמן החילוץ מייצר כיום מימוש מלא לכל טריפל <<<<<<< HEAD שחולץ: `stmt_uri` ייחודי, `activity_uri` ו-מטא-דאטה של PROV-O עבור כל עובדה ידע בודדת. עיבוד של חלק אחד שמייצר 20 קשרים מייצר כ-220 טריפלי מעקב מקורות מידע בנוסף ל-כ-20 טריפלי ידע - תקורה של בערך 10:1. ======= שחולץ: `stmt_uri` ייחודי, `activity_uri` ו-מטא-דאטה של PROV-O הקשורים לכל עובדה בידע. עיבוד של חלק אחד שמניב 20 קשרים מייצר כ-220 טריפלי מעקב מקורות מידע בנוסף ל-כ-20 טריפלי ידע - תקורה של בערך 10:1. >>>>>>> 82edf2d (New md files from RunPod) זה יקר (אחסון, אינדקס, העברה) וגם לא מדויק מבחינה סמנטית. כל חלק מעובד על ידי קריאה אחת של מודל שפה גדול (LLM) שמייצר את כל <<<<<<< HEAD הטריפלים שלו בעסקה אחת. המודל הנוכחי של טריפל בודד מטשטש את זה על ידי יצירת האשליה של 20 אירועי חילוץ עצמאיים. בנוסף, לשני מתוך ארבעה מעבדי החילוץ (kg-extract-ontology, ======= הטריפלים שלו בפעולה אחת. המודל הנוכחי, שמבוסס על טריפל בודד, מטעה בכך שהוא יוצר את האשליה של 20 אירועי חילוץ עצמאיים. בנוסף, לשני מתוך ארבעת מעבדי החילוץ (kg-extract-ontology, >>>>>>> 82edf2d (New md files from RunPod) kg-extract-agent) אין מעקב מקורות מידע כלל, מה שמשאיר פערים במסלול הביקורת. ## פתרון <<<<<<< HEAD החליפו את הפירוט של כל שלישייה במודל תת-גרף: רשומת מוצא אחת לכל חילוץ, המשותפת לכל השלישיות שנוצרו מחלק זה. ======= החליפו את הפירוט של כל טריפל במודל תת-גרף: רשומת מוצא אחת לכל חילוץ, המשותפת לכל הטריפלים שנוצרו מחלק זה. >>>>>>> 82edf2d (New md files from RunPod) ### שינוי מונחים | ישן | חדש | |-----|-----| | `stmt_uri` (`https://trustgraph.ai/stmt/{uuid}`) | `subgraph_uri` (`https://trustgraph.ai/subgraph/{uuid}`) | | `statement_uri()` | `subgraph_uri()` | | `tg:reifies` (1:1, זהות) | `tg:contains` (1:רבים, הכלה) | ### מבנה מטרה <<<<<<< HEAD כל השלישיות של המוצא נכנסות לגרף המקוּם בשם `urn:graph:source`. ======= כל הטריפלים של המוצא נכנסים לגרף המקוּם `urn:graph:source`. >>>>>>> 82edf2d (New md files from RunPod) ``` # Subgraph contains each extracted triple (RDF-star quoted triples) tg:contains <> . tg:contains <> . tg:contains <> . # Derivation from source chunk prov:wasDerivedFrom . prov:wasGeneratedBy . # Activity: one per chunk extraction rdf:type prov:Activity . rdfs:label "{component_name} extraction" . prov:used . prov:wasAssociatedWith . prov:startedAtTime "2026-03-13T10:00:00Z" . tg:componentVersion "0.25.0" . tg:llmModel "gpt-4" . # if available tg:ontology . # if available # Agent: stable per component rdf:type prov:Agent . rdfs:label "{component_name}" . ``` ### השוואת נפחים עבור קטע המייצר N משולשים חילוצים: | | ישן (למשולש) | חדש (תת-גרף) | |---|---|---| | `tg:contains` / `tg:reifies` | N | N | | משולשי פעילות | ~9 x N | ~9 | | משולשי סוכנים | 2 x N | 2 | | מטא-נתונים של הצהרה/תת-גרף | 2 x N | 2 | | **סה"כ משולשי מקור** | **~13N** | **N + 13** | | **דוגמה (N=20)** | **~260** | **33** | ## היקף ### מעבדים לעדכון (מקור קיים, לכל משולש) **kg-extract-definitions** (`trustgraph-flow/trustgraph/extract/kg/definitions/extract.py`) כיום קורא ל-`statement_uri()` + `triple_provenance_triples()` בתוך הלולאה לכל הגדרה. שינויים: העברת יצירת `subgraph_uri()` ו-`activity_uri()` לפני הלולאה איסוף משולשי `tg:contains` בתוך הלולאה פליטת בלוק פעילות/סוכן/הסקה משותף פעם אחת לאחר הלולאה **kg-extract-relationships** (`trustgraph-flow/trustgraph/extract/kg/relationships/extract.py`) דפוס זהה כמו הגדרות. שינויים זהים. ### מעבדים להוספת מקור (חסרים כרגע) **kg-extract-ontology** (`trustgraph-flow/trustgraph/extract/kg/ontology/extract.py`) כיום פולט משולשים ללא מקור. הוספת מקור תת-גרף באמצעות הדפוס הזהה: תת-גרף אחד לכל קטע, `tg:contains` עבור כל משולש חילוץ. **kg-extract-agent** (`trustgraph-flow/trustgraph/extract/kg/agent/extract.py`) כיום פולט משולשים ללא מקור. הוספת מקור תת-גרף באמצעות הדפוס הזהה. ### שינויים בספריית המקור המשותפת **`trustgraph-base/trustgraph/provenance/triples.py`** החלפת `triple_provenance_triples()` עם `subgraph_provenance_triples()` פונקציה חדשה מקבלת רשימה של משולשים חילוצים במקום משולש בודד מייצרת `tg:contains` אחד לכל משולש, בלוק פעילות/סוכן משותף הסרת `triple_provenance_triples()` הישן **`trustgraph-base/trustgraph/provenance/uris.py`** החלפת `statement_uri()` עם `subgraph_uri()` **`trustgraph-base/trustgraph/provenance/namespaces.py`** החלפת `TG_REIFIES` עם `TG_CONTAINS` ### לא בתחום **kg-extract-topics**: מעבד מסוג ישן, לא בשימוש כרגע ב זרימות סטנדרטיות **kg-extract-rows**: מייצר שורות ולא משולשים, מודל מקור שונה **מקור בזמן שאילתה** (`urn:graph:retrieval`): נושא נפרד, כבר משתמש בדפוס שונה (שאילתה/חקירה/מיקוד/סינתזה) <<<<<<< HEAD **מקור של מסמך/עמוד/קטע** (מקודד PDF, מפצל): כבר משתמש ======= **מקור של מסמך/עמוד/קטע** (מקודד PDF, חותך): כבר משתמש >>>>>>> 82edf2d (New md files from RunPod) ב-`derived_entity_triples()` שהוא לכל ישות, ולא לכל משולש — אין בעיית יתירות ## הערות יישום ### שינוי מבנה הלולאה של המעבד לפני (לכל משולש, ביחסים): ```python for rel in rels: # ... build relationship_triple ... stmt_uri = statement_uri() prov_triples = triple_provenance_triples( stmt_uri=stmt_uri, extracted_triple=relationship_triple, ... ) triples.extend(set_graph(prov_triples, GRAPH_SOURCE)) ``` אחרי (תת-גרף): ```python sg_uri = subgraph_uri() for rel in rels: # ... build relationship_triple ... extracted_triples.append(relationship_triple) prov_triples = subgraph_provenance_triples( subgraph_uri=sg_uri, extracted_triples=extracted_triples, chunk_uri=chunk_uri, component_name=default_ident, component_version=COMPONENT_VERSION, llm_model=llm_model, ontology_uri=ontology_uri, ) triples.extend(set_graph(prov_triples, GRAPH_SOURCE)) ``` <<<<<<< HEAD ### חתימה חדשה של עוזר ======= ### חתימה חדשה עבור עוזר >>>>>>> 82edf2d (New md files from RunPod) ```python def subgraph_provenance_triples( subgraph_uri: str, extracted_triples: List[Triple], chunk_uri: str, component_name: str, component_version: str, llm_model: Optional[str] = None, ontology_uri: Optional[str] = None, timestamp: Optional[str] = None, ) -> List[Triple]: """ Build provenance triples for a subgraph of extracted knowledge. Creates: - tg:contains link for each extracted triple (RDF-star quoted) - One prov:wasDerivedFrom link to source chunk - One activity with agent metadata """ ``` ### שינוי משמעותי זוהי שינוי משמעותי במודל המקור. המקור טרם פורסם, ולכן אין צורך בביצוע שדרוג. ניתן להסיר את קוד ⟦CODE_0⟧ / `tg:reifies` הישן לחלוטין. קוד `statement_uri` ניתן להסרה לחלוטין.