mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 16:36:21 +02:00
Native CLI i18n: The TrustGraph CLI has built-in translation support that dynamically loads language strings. You can test and use different languages by simply passing the --lang flag (e.g., --lang es for Spanish, --lang ru for Russian) or by configuring your environment's LANG variable. Automated Docs Translations: This PR introduces autonomously translated Markdown documentation into several target languages, including Spanish, Swahili, Portuguese, Turkish, Hindi, Hebrew, Arabic, Simplified Chinese, and Russian.
139 lines
5.8 KiB
Markdown
139 lines
5.8 KiB
Markdown
---
|
|
layout: default
|
|
title: "مخطط بيانات البنية: تغييرات مخطط Pulsar"
|
|
parent: "Arabic (Beta)"
|
|
---
|
|
|
|
# مخطط بيانات البنية: تغييرات مخطط Pulsar
|
|
|
|
> **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.
|
|
|
|
## نظرة عامة
|
|
|
|
استنادًا إلى مواصفات `STRUCTURED_DATA.md`، تقترح هذه الوثيقة الإضافات والتعديلات اللازمة على مخطط Pulsar لدعم قدرات البيانات المنظمة في TrustGraph.
|
|
|
|
## تغييرات مخطط مطلوبة
|
|
|
|
### 1. تحسينات مخطط أساسية
|
|
|
|
#### تعريف الحقل المحسّن
|
|
تحتاج الفئة الحالية `Field` في `core/primitives.py` إلى خصائص إضافية:
|
|
|
|
```python
|
|
class Field(Record):
|
|
name = String()
|
|
type = String() # int, string, long, bool, float, double, timestamp
|
|
size = Integer()
|
|
primary = Boolean()
|
|
description = String()
|
|
# حقول جديدة:
|
|
required = Boolean() # ما إذا كان الحقل مطلوبًا
|
|
enum_values = Array(String()) # للحقول من نوع Enum
|
|
indexed = Boolean() # ما إذا كان يجب فهرسة الحقل
|
|
```
|
|
|
|
### 2. مخططات معرفة جديدة
|
|
|
|
#### 2.1 إرسال بيانات منظمة
|
|
ملف جديد: `knowledge/structured.py`
|
|
|
|
```python
|
|
from pulsar.schema import Record, String, Bytes, Map
|
|
from ..core.metadata import Metadata
|
|
|
|
class StructuredDataSubmission(Record):
|
|
metadata = Metadata()
|
|
format = String() # "json", "csv", "xml"
|
|
schema_name = String() # مرجع إلى المخطط في التكوين
|
|
data = Bytes() # البيانات الخام للإدخال
|
|
options = Map(String()) # خيارات محددة بالتنسيق
|
|
```
|
|
|
|
### 3. مخططات الخدمات الجديدة
|
|
|
|
#### 3.1 خدمة استعلام NLP إلى منظمة
|
|
ملف جديد: `services/nlp_query.py`
|
|
|
|
```python
|
|
from pulsar.schema import Record, String, Array, Map, Integer, Double
|
|
from ..core.primitives import Error
|
|
|
|
class NLPToStructuredQueryRequest(Record):
|
|
natural_language_query = String()
|
|
max_results = Integer()
|
|
context_hints = Map(String()) # تلميحات سياق اختيارية لتوليد الاستعلام
|
|
|
|
class NLPToStructuredQueryResponse(Record):
|
|
error = Error()
|
|
graphql_query = String() # استعلام GraphQL المُنشأ
|
|
variables = Map(String()) # متغيرات GraphQL إذا كانت موجودة
|
|
detected_schemas = Array(String()) # المخططات التي يستهدفها الاستعلام
|
|
confidence = Double()
|
|
```
|
|
|
|
#### 3.2 خدمة استعلام منظمة
|
|
ملف جديد: `services/structured_query.py`
|
|
|
|
```python
|
|
from pulsar.schema import Record, String, Map, Array
|
|
from ..core.primitives import Error
|
|
|
|
class StructuredQueryRequest(Record):
|
|
query = String() # استعلام GraphQL
|
|
variables = Map(String()) # متغيرات GraphQL
|
|
operation_name = String() # اسم العملية الاختياري للمستندات متعددة العمليات
|
|
|
|
class StructuredQueryResponse(Record):
|
|
error = Error()
|
|
data = String() # بيانات استجابة GraphQL المُشفرة بتنسيق JSON
|
|
errors = Array(String()) # أخطاء GraphQL إذا كانت موجودة
|
|
```
|
|
|
|
#### 2.2 مخرجات استخراج الكائنات
|
|
ملف جديد: `knowledge/object.py`
|
|
|
|
```python
|
|
from pulsar.schema import Record, String, Map, Double
|
|
from ..core.metadata import Metadata
|
|
|
|
class ExtractedObject(Record):
|
|
metadata = Metadata()
|
|
schema_name = String() # أي مخطط ينتمي إليه هذا الكائن
|
|
values = Map(String()) # اسم الحقل -> القيمة
|
|
confidence = Double()
|
|
source_span = String() # نطاق النص الذي تم فيه العثور على الكائن
|
|
```
|
|
|
|
### 4. مخططات معرفة محسّنة
|
|
|
|
#### 4.1 تحسين تضمين الكائنات
|
|
قم بتحديث `knowledge/embeddings.py` لدعم تضمين الكائنات المنظمة بشكل أفضل:
|
|
|
|
```python
|
|
class StructuredObjectEmbedding(Record):
|
|
metadata = Metadata()
|
|
vectors = Array(Array(Double()))
|
|
schema_name = String()
|
|
object_id = String() # قيمة المفتاح الأساسي
|
|
field_embeddings = Map(Array(Double())) # تضمينات الحقول
|
|
```
|
|
|
|
## نقاط التكامل
|
|
|
|
### تكامل التدفق
|
|
|
|
سيتم استخدام المخططات في وحدات تدفق جديدة:
|
|
- `trustgraph-flow/trustgraph/decoding/structured` - يستخدم StructuredDataSubmission
|
|
- `trustgraph-flow/trustgraph/query/nlp_query/cassandra` - يستخدم مخططات استعلام NLP
|
|
- `trustgraph-flow/trustgraph/query/objects/cassandra` - يستخدم مخططات استعلام منظمة
|
|
- `trustgraph-flow/trustgraph/extract/object/row/` - يستهلك Chunk، وينتج ExtractedObject
|
|
- `trustgraph-flow/trustgraph/storage/objects/cassandra` - يستخدم مخطط Rows
|
|
- `trustgraph-flow/trustgraph/embeddings/object_embeddings/qdrant` - يستخدم مخططات تضمين الكائنات
|
|
|
|
## ملاحظات التنفيذ
|
|
|
|
1. **إصدار المخطط**: ضع في اعتبارك إضافة حقل `version` إلى RowSchema لدعم الترحيل المستقبلي
|
|
2. **نظام الأنواع**: يجب أن يدعم `Field.type` جميع أنواع بيانات Cassandra الأصلية
|
|
3. **عمليات المجموعة**: يجب أن يدعم معظم الخدمات العمليات الفردية والمجمعة
|
|
4. **معالجة الأخطاء**: يجب أن يكون للإبلاغ عن الأخطاء باستمرار عبر جميع الخدمات الجديدة
|
|
5. **التوافق مع الإصدارات السابقة**: تظل المخططات الحالية دون تغيير باستثناء التحسينات الطفيفة للملفات
|