mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-26 00:46:22 +02:00
261 lines
16 KiB
Markdown
261 lines
16 KiB
Markdown
|
|
---
|
||
|
|
layout: default
|
||
|
|
title: "निष्कर्षण का स्रोत: सबग्राफ मॉडल"
|
||
|
|
parent: "Hindi (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.
|
||
|
|
|
||
|
|
## समस्या
|
||
|
|
|
||
|
|
निष्कर्षण के समय का वर्तमान स्रोत जानकारी एक पूर्ण पुन: निरूपण प्रति उत्पन्न करता है
|
||
|
|
निष्कर्षित त्रिगुट: प्रत्येक ज्ञान तथ्य के लिए एक अद्वितीय `stmt_uri`, `activity_uri`, और संबंधित
|
||
|
|
<<<<<<< HEAD
|
||
|
|
PROV-O मेटाडेटा। एक ऐसे खंड को संसाधित करना जो 20 संबंधों का उत्पादन करता है, उसमें लगभग 220 स्रोत जानकारी त्रिगुट होते हैं, इसके अतिरिक्त
|
||
|
|
=======
|
||
|
|
PROV-O मेटाडेटा। एक ऐसे खंड को संसाधित करना जो 20 संबंध उत्पन्न करता है, उसमें लगभग 220 स्रोत जानकारी त्रिगुट होते हैं, इसके अतिरिक्त
|
||
|
|
>>>>>>> 82edf2d (New md files from RunPod)
|
||
|
|
लगभग 20 ज्ञान त्रिगुट - लगभग 10:1 का ओवरहेड।
|
||
|
|
|
||
|
|
|
||
|
|
यह महंगा है (भंडारण, अनुक्रमण, प्रसारण) और अर्थपूर्ण रूप से
|
||
|
|
गलत है। प्रत्येक खंड को एक एकल LLM कॉल द्वारा संसाधित किया जाता है जो सभी त्रिगुटों को एक लेनदेन में उत्पन्न करता है।
|
||
|
|
वर्तमान प्रति-त्रिगुट मॉडल 20 स्वतंत्र निष्कर्षण
|
||
|
|
घटनाओं का भ्रम पैदा करके इसे अस्पष्ट करता है।
|
||
|
|
|
||
|
|
|
||
|
|
इसके अतिरिक्त, चार निष्कर्षण प्रोसेसरों में से दो (kg-extract-ontology,
|
||
|
|
kg-extract-agent) में कोई स्रोत जानकारी नहीं है, जिससे ऑडिट
|
||
|
|
में अंतराल पैदा होते हैं।
|
||
|
|
|
||
|
|
## समाधान
|
||
|
|
|
||
|
|
प्रति-त्रिगुट पुन: निरूपण को एक **सबग्राफ मॉडल** से बदलें: एक स्रोत जानकारी
|
||
|
|
रिकॉर्ड प्रति खंड निष्कर्षण, उस खंड से उत्पन्न सभी त्रिगुटों में साझा किया जाता है।
|
||
|
|
|
||
|
|
|
||
|
|
### शब्दावली परिवर्तन
|
||
|
|
|
||
|
|
| पुराना | नया |
|
||
|
|
|-----|-----|
|
||
|
|
| `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:कई, समावेशन) |
|
||
|
|
|
||
|
|
### लक्षित संरचना
|
||
|
|
|
||
|
|
सभी स्रोत जानकारी त्रिगुट `urn:graph:source` नामित ग्राफ में जाते हैं।
|
||
|
|
|
||
|
|
```
|
||
|
|
# Subgraph contains each extracted triple (RDF-star quoted triples)
|
||
|
|
<subgraph> tg:contains <<s1 p1 o1>> .
|
||
|
|
<subgraph> tg:contains <<s2 p2 o2>> .
|
||
|
|
<subgraph> tg:contains <<s3 p3 o3>> .
|
||
|
|
|
||
|
|
# Derivation from source chunk
|
||
|
|
<subgraph> prov:wasDerivedFrom <chunk_uri> .
|
||
|
|
<subgraph> prov:wasGeneratedBy <activity> .
|
||
|
|
|
||
|
|
# Activity: one per chunk extraction
|
||
|
|
<activity> rdf:type prov:Activity .
|
||
|
|
<activity> rdfs:label "{component_name} extraction" .
|
||
|
|
<activity> prov:used <chunk_uri> .
|
||
|
|
<activity> prov:wasAssociatedWith <agent> .
|
||
|
|
<activity> prov:startedAtTime "2026-03-13T10:00:00Z" .
|
||
|
|
<activity> tg:componentVersion "0.25.0" .
|
||
|
|
<activity> tg:llmModel "gpt-4" . # if available
|
||
|
|
<activity> tg:ontology <ontology_uri> . # if available
|
||
|
|
|
||
|
|
# Agent: stable per component
|
||
|
|
<agent> rdf:type prov:Agent .
|
||
|
|
<agent> rdfs:label "{component_name}" .
|
||
|
|
```
|
||
|
|
|
||
|
|
### मात्रा की तुलना
|
||
|
|
|
||
|
|
<<<<<<< HEAD
|
||
|
|
एक ऐसे खंड के लिए जो N निकाले गए त्रिगुण उत्पन्न करता है:
|
||
|
|
=======
|
||
|
|
एक ऐसे खंड के लिए जो N निकाले गए त्रिगुण (ट्रिपल्स) उत्पन्न करता है:
|
||
|
|
>>>>>>> 82edf2d (New md files from RunPod)
|
||
|
|
|
||
|
|
| | पुराना (प्रति-त्रिगुण) | नया (उप-ग्राफ) |
|
||
|
|
|---|---|---|
|
||
|
|
| `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`)
|
||
|
|
|
||
|
|
<<<<<<< HEAD
|
||
|
|
वर्तमान में, यह बिना किसी स्रोत जानकारी के त्रिक उत्पन्न करता है। उपग्राफ स्रोत जानकारी जोड़ें।
|
||
|
|
उसी पैटर्न का उपयोग करके: प्रत्येक खंड के लिए एक उपग्राफ, प्रत्येक के लिए `tg:contains`।
|
||
|
|
निकाले गए त्रिगुट।
|
||
|
|
=======
|
||
|
|
वर्तमान में, यह बिना किसी स्रोत जानकारी के त्रिक (triples) उत्पन्न करता है। उप-ग्राफ (subgraph) की स्रोत जानकारी जोड़ें।
|
||
|
|
उसी पैटर्न का उपयोग करके: प्रत्येक खंड (chunk) के लिए एक उप-ग्राफ, प्रत्येक निकाले गए त्रिक के लिए `tg:contains`।
|
||
|
|
|
||
|
|
>>>>>>> 82edf2d (New md files from RunPod)
|
||
|
|
|
||
|
|
**kg-extract-agent**
|
||
|
|
(`trustgraph-flow/trustgraph/extract/kg/agent/extract.py`)
|
||
|
|
|
||
|
|
<<<<<<< HEAD
|
||
|
|
वर्तमान में, यह बिना किसी स्रोत जानकारी के त्रिक (triples) उत्पन्न करता है। समान पैटर्न का उपयोग करके सबग्राफ (subgraph) स्रोत जानकारी जोड़ें।
|
||
|
|
|
||
|
|
|
||
|
|
### साझा उत्पत्ति लाइब्रेरी में परिवर्तन
|
||
|
|
|
||
|
|
**`trustgraph-base/trustgraph/provenance/triples.py`**
|
||
|
|
|
||
|
|
`triple_provenance_triples()` को `subgraph_provenance_triples()` से बदलें
|
||
|
|
नया फ़ंक्शन एक एकल के बजाय निकाले गए त्रिपुलों की सूची को स्वीकार करता है
|
||
|
|
प्रत्येक ट्रिपल के लिए एक `tg:contains` उत्पन्न करता है, साझा गतिविधि/एजेंट ब्लॉक
|
||
|
|
पुराने `triple_provenance_triples()` को हटा दें
|
||
|
|
=======
|
||
|
|
वर्तमान में, यह बिना किसी स्रोत जानकारी के त्रिक (triples) उत्पन्न करता है। उप-ग्राफ (subgraph) की स्रोत जानकारी उसी पैटर्न का उपयोग करके जोड़ें।
|
||
|
|
|
||
|
|
|
||
|
|
### साझा स्रोत पुस्तकालय (Shared Provenance Library) में परिवर्तन
|
||
|
|
|
||
|
|
**`trustgraph-base/trustgraph/provenance/triples.py`**
|
||
|
|
|
||
|
|
`triple_provenance_triples()` को `subgraph_provenance_triples()` से बदलें।
|
||
|
|
नया फ़ंक्शन एक एकल त्रिक के बजाय निकाले गए त्रिकों की एक सूची स्वीकार करता है।
|
||
|
|
प्रत्येक त्रिक के लिए एक `tg:contains` उत्पन्न करता है, जो साझा गतिविधि/एजेंट ब्लॉक है।
|
||
|
|
पुराने `triple_provenance_triples()` को हटा दें।
|
||
|
|
>>>>>>> 82edf2d (New md files from RunPod)
|
||
|
|
|
||
|
|
**`trustgraph-base/trustgraph/provenance/uris.py`**
|
||
|
|
|
||
|
|
`statement_uri()` को `subgraph_uri()` से बदलें।
|
||
|
|
|
||
|
|
**`trustgraph-base/trustgraph/provenance/namespaces.py`**
|
||
|
|
|
||
|
|
`TG_REIFIES` को `TG_CONTAINS` से बदलें।
|
||
|
|
|
||
|
|
### दायरे में नहीं
|
||
|
|
|
||
|
|
<<<<<<< HEAD
|
||
|
|
**kg-extract-topics**: पुराना-शैली का प्रोसेसर, वर्तमान में उपयोग में नहीं है।
|
||
|
|
मानक प्रक्रियाओं में।
|
||
|
|
**kg-extract-rows**: पंक्तियाँ उत्पन्न करता है, ट्रिपल नहीं, अलग उत्पत्ति मॉडल।
|
||
|
|
मॉडल।
|
||
|
|
**क्वेरी-टाइम प्रोवेनेंस** (`urn:graph:retrieval`): एक अलग चिंता का विषय,
|
||
|
|
पहले से ही एक अलग पैटर्न का उपयोग करता है (प्रश्न/अन्वेषण/फोकस/संश्लेषण)।
|
||
|
|
=======
|
||
|
|
**kg-extract-topics**: पुराना शैली का प्रोसेसर, वर्तमान में उपयोग में नहीं है।
|
||
|
|
मानक प्रक्रियाओं में।
|
||
|
|
**kg-extract-rows**: पंक्तियाँ उत्पन्न करता है, ट्रिपल नहीं, अलग उत्पत्ति मॉडल।
|
||
|
|
मॉडल।
|
||
|
|
**क्वेरी-टाइम प्रोवेनेंस** (`urn:graph:retrieval`): एक अलग विषय,
|
||
|
|
पहले से ही एक अलग पैटर्न का उपयोग करता है (प्रश्न/अन्वेषण/ध्यान/संश्लेषण)।
|
||
|
|
>>>>>>> 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))
|
||
|
|
```
|
||
|
|
|
||
|
|
<<<<<<< HEAD
|
||
|
|
(उपग्राफ के बाद):
|
||
|
|
=======
|
||
|
|
(उप-ग्राफ के बाद):
|
||
|
|
>>>>>>> 82edf2d (New md files from RunPod)
|
||
|
|
```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))
|
||
|
|
```
|
||
|
|
|
||
|
|
### नया सहायक हस्ताक्षर
|
||
|
|
|
||
|
|
```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
|
||
|
|
"""
|
||
|
|
```
|
||
|
|
|
||
|
|
### महत्वपूर्ण परिवर्तन
|
||
|
|
|
||
|
|
<<<<<<< HEAD
|
||
|
|
यह उत्पत्ति मॉडल में एक महत्वपूर्ण बदलाव है। उत्पत्ति (प्रोवेनेंस) का
|
||
|
|
जारी किया गया है, इसलिए माइग्रेशन की आवश्यकता नहीं है। पुराना `tg:reifies` /
|
||
|
|
`statement_uri` कोड पूरी तरह से हटाया जा सकता है।
|
||
|
|
=======
|
||
|
|
यह प्रामाणिकता मॉडल में एक महत्वपूर्ण बदलाव है। प्रामाणिकता अभी तक जारी नहीं की गई है, इसलिए किसी माइग्रेशन की आवश्यकता नहीं है। पुराना ⟦CODE_0⟧ / ⟦CODE_0⟧ कोड पूरी तरह से हटाया जा सकता है।
|
||
|
|
यह प्रामाणिकता मॉडल में एक महत्वपूर्ण बदलाव है। प्रामाणिकता अभी तक जारी नहीं की गई है, इसलिए किसी माइग्रेशन की आवश्यकता नहीं है। पुराना `tg:reifies` / `tg:reifies` कोड पूरी तरह से हटाया जा सकता है।
|
||
|
|
यह प्रामाणिकता मॉडल में एक महत्वपूर्ण बदलाव है। प्रामाणिकता अभी तक जारी नहीं की गई है, इसलिए किसी माइग्रेशन की आवश्यकता नहीं है। पुराना `statement_uri` / `statement_uri` कोड पूरी तरह से हटाया जा सकता है।
|
||
|
|
>>>>>>> 82edf2d (New md files from RunPod)
|