Prez عبارة عن إطار عمل لواجهة برمجة تطبيقات البيانات المرتبطة قابل للتكوين، ويقدم ملفات تعريف لبيانات الرسم البياني المعرفي وفقًا لمعايير التفاوض على المحتوى حسب ملف التعريف.
أين واجهة المستخدم؟
يقدم Prez البيانات فقط - عادةً RDF ولكن يمكن أن تكون GeoJSON أو XML وما إلى ذلك - ويقدم نموذجًا خاصًا من RDF يتضمن تسميات لجميع الكائنات والمسندات التي يمكن لـ Prez العثور عليها في قاعدة البيانات الخاصة به.
إذا كنت تريد واجهة مستخدم يمكنها عرض RDF المسمى لـ Prez كـ HTML وعناصر واجهة مستخدم رسومية رائعة أخرى، فراجع واجهة مستخدم Prez.
للحصول على نسخة من Prez على جهاز الكمبيوتر الخاص بك، قم بتشغيل:
git clone https://github.com/RDFLib/prez
تم تطوير Prez باستخدام Poetry، وهي أداة التعبئة والتغليف والتبعية الخاصة بـ Python. يقدم Poetry جميع تبعيات Prez (حزم Python الأخرى) في ملف pyproject.toml
الموجود في الدليل الجذر للمشروع.
لتثبيت تبعيات بايثون، قم بتشغيل:
poetry install
ملاحظة: يجب تثبيت الشعر على النظام. للتحقق مما إذا كان تطبيق Poetry مثبتًا لديك، قم بتشغيل
poetry --version
. للحصول على نصائح حول تثبيت مجموعات تبعية محددة وإدارتها، راجع الوثائق.
يقدم Prez نقاط النهاية التالية:
نقطة النهاية | MT الافتراضي |
---|---|
/ | نص/anot+سلحفاة |
/ مستندات | نص/أتش تي أم أل |
/كتالوجات/{catalogId} | نص/anot+سلحفاة |
/catalogs/{catalogId}/collections | نص/anot+سلحفاة |
/catalogs/{catalogId}/collections/{recordsCollectionId} | نص/anot+سلحفاة |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items | نص/anot+سلحفاة |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items/{itemId} | نص/anot+سلحفاة |
/purge-tbox-cache | application/json |
/tbox-cache | application/json |
/صحة | application/json |
/البادئات | نص/anot+سلحفاة |
/concept-hierarchy/{parent_curie}/narrowers | نص/anot+سلحفاة |
/concept-hierarchy/{parent_curie}/top-concepts | نص/anot+سلحفاة |
/cql | نص/anot+سلحفاة |
/profiles | نص/anot+سلحفاة |
/يبحث | نص/anot+سلحفاة |
/الملفات الشخصية/{profile_curie} | نص/anot+سلحفاة |
/هدف | نص/anot+سلحفاة |
/المعرف/إعادة التوجيه | لا يوجد |
/المعرف/كوري/{iri} | نص/عادي |
/المعرف/iri/{كوري} | نص/بلاي |
تعتمد نقاط نهاية واجهة برمجة تطبيقات ميزات OGC على ROOT /catalogs/{catalogId}/collections/{recordsCollectionId}/
نقطة النهاية | MT الافتراضي |
---|---|
{ROOT}/features | application/json |
{ROOT}/features/docs | نص/أتش تي أم أل |
{ROOT}/features/conformance | application/json |
{ROOT}/features/collections | application/json |
{ROOT}/features/collections/{collectionId} | application/json |
{ROOT}/features/collections/{collectionId}/items | التطبيق/جيو+json |
{ROOT}/features/collections/{collectionId}/items/{featureId} | التطبيق/جيو+jso |
يمكن استخدام متغيرات البيئة التالية لتكوين Prez: في معظم الحالات، كل ما هو مطلوب هو المتغير SPARQL_ENDPOINT.
يمكن تعيينها في ملف ".env" والذي سيتم قراءته عبر python-dotenv. وبدلاً من ذلك، قم بتعيينهم مباشرة في البيئة التي يتم تشغيل Prez منها.
sparql_endpoint
: نقطة نهاية SPARQL للقراءة فقط لـ Prez. الافتراضي هو None
.sparql_username
: اسم مستخدم لنقطة نهاية Prez SPARQL، إذا كانت قاعدة بيانات RDF مطلوبة. الافتراضي هو None
.sparql_password
: كلمة مرور لنقطة نهاية Prez SPARQL، إذا كانت مطلوبة بواسطة قاعدة بيانات RDF. الافتراضي هو None
.enable_sparql_endpoint
: ما إذا كان سيتم تمكين نقطة نهاية SPARQL. أي ما إذا كان prez يعرض نقطة نهاية SPARQL الخاصة بالمستودع البعيد (عادةً مخزن ثلاثي). الافتراضي هو False
. لاحظ أن نقطة نهاية SPARQL عند تمكينها تدعم طلبات POST. لا يقوم Prez نفسه بإجراء أي تحديثات للمستودع البعيد (على سبيل المثال Triplestore البعيد)، ومع ذلك، إذا تم تمكين نقطة نهاية SPARQL البعيدة، فمن الممكن أن يتمكن المستخدمون من إجراء تحديثات للمستودع البعيد باستخدام نقطة نهاية SPARQL. protocol
: البروتوكول المستخدم لتوصيل Prez. الافتراضي هو "http"
.host
: اسم المجال المضيف لـ Prez. الافتراضي هو "localhost"
.port
: يمكن الوصول إلى المنفذ Prez. الافتراضي هو 8000
. system_uri
: IRI لنظام Prez ككل. تظهر هذه القيمة في الصفحة المقصودة RDF التي يسلمها Prez ( "/"
). الافتراضي هو f"{protocol}://{host}:{port}"
. log_level
: مستوى التسجيل. الافتراضي هو "INFO"
.log_output
: تسجيل وجهة الإخراج. الافتراضي هو "stdout"
. prez_title
: عنوان مثيل Prez. الافتراضي هو "Prez"
.prez_desc
: وصف مثيل Prez. الافتراضي هو وصف لواجهة برمجة تطبيقات إطار عمل الويب Prez.prez_version
: إصدار مثيل Prez. الافتراضي هو None
. curie_separator
: الفاصل المستخدم في CURIEs. الافتراضي هو ":"
. يظهر هذا الفاصل في الروابط التي تم إنشاؤها بواسطة Prez، وبالتالي في مسارات URL. order_lists_by_label
: ما إذا كان سيتم ترتيب القوائم حسب التصنيف أم لا. الافتراضي True
. يستخدم لعرض RDF مع ملصقات يمكن قراءتها بواسطة الإنسان.
label_predicates
: قائمة المسندات المستخدمة للتسميات. الافتراضي يشمل:skos:prefLabel
dcterms:title
rdfs:label
sdo:name
عند استخدام نوع الوسائط المشروح (
+anot
)، يتضمن Prez ثلاث مرات لكل URI في الاستجابة الأولية التي تحتوي على إحدى الخصائص المذكورة أعلاه. يتم بعد ذلك تخزين هذه التعليقات التوضيحية الثلاثية مؤقتًا. يتم استخدام التعليقات التوضيحية لأغراض العرض، على سبيل المثال صفحات HTML.
على غرار تسمية المسندات أعلاه.
description_predicates
: قائمة المسندات المستخدمة للأوصاف. الافتراضي يشمل:skos:definition
dcterms:description
sdo:description
على غرار المسندات المصدر أعلاه.
provenance_predicates
: قائمة المسندات المستخدمة للمصدر. الافتراضي يشمل:dcterms:provenance
يمكن أيضًا استخدام آلية التعليق التوضيحي لإرجاع خصائص معينة بشكل عام أينما كانت موجودة.
other_predicates
: قائمة المسندات الأخرى. الافتراضي يشمل:sdo:color
reg:status
skos:narrower
skos:broader
sparql_repo_type
: نوع مستودع SPARQL. الافتراضي هو "remote"
. الخيارات هي "remote"
و "pyoxigraph"
و "oxrdflib"
sparql_timeout
: انتهاء مهلة استعلامات SPARQL. الافتراضي هو 30
. prez_contact
: معلومات الاتصال بـ Prez. الافتراضي هو None
. disable_prefix_generation
: ما إذا كان سيتم تعطيل إنشاء البادئة. يوصى بتعطيل إنشاء البادئات لمستودعات البيانات الكبيرة ، علاوة على ذلك، يوصى دائمًا بتحديد البادئات في دليل prez/reference_data/prefixes/
. الافتراضي هو False
. default_language
: اللغة الافتراضية لـ Prez. الافتراضي هو "en"
.default_search_predicates
: مسندات البحث الافتراضية. الافتراضي يشمل:rdfs:label
skos:prefLabel
sdo:name
dcterms:title
يستخدم بالتزامن مع مستودع Pyoxigraph. يحدد دليلاً (من جذر المستودع) لتحميله في الرسم البياني لبيانات Pyoxigraph في الذاكرة. لا يستخدم لأنواع المستودعات الأخرى.
local_rdf_dir
: دليل لملفات RDF المحلية. الافتراضي هو "rdf"
. endpoint_structure
: البنية الافتراضية لنقاط النهاية المستخدمة لإنشاء الروابط. الافتراضي هو ("catalogs", "collections", "items")
. system_endpoints
: قائمة نقاط نهاية النظام. الافتراضي يشمل:ep:system/profile-listing
ep:system/profile-object
listing_count_limit
: الحد الأقصى لعدد العناصر التي يمكن حسابها لنقطة نهاية القائمة. سيتم إرجاع الأعداد الأكبر من هذا الحد كـ ">N" حيث N هو الحد. الافتراضي هو 100
.search_count_limit
: الحد الأقصى لعدد العناصر التي يمكن إرجاعها في نتيجة البحث. الافتراضي هو 10
. temporal_predicate
: المسند المستخدم للخصائص الزمنية. الافتراضي هو sdo:temporal
. endpoint_to_template_query_filename
: يقوم القاموس بتعيين نقاط النهاية لأسماء ملفات قالب الاستعلام. الافتراضي هو قاموس فارغ. هذا القسم مخصص لتطوير Prez محليًا. راجع خيارات التشغيل أدناه لتشغيل Prez في الإنتاج.
لتشغيل خادم التطوير (مع إعادة التحميل التلقائي عند تغيير التعليمات البرمجية):
poetry run python main.py
تم إنشاء صور حاوية Prez باستخدام Github Action وهي متاحة هنا.
يمكن أيضًا استخدام ملف Dockerfile الموجود في المستودع لإنشاء صورة Docker.
اسم الصورة هو ghcr.io/rdflib/prez
.
تشير العلامة latest
إلى أحدث إصدار مستقر من Prez. تحتوي جميع الإصدارات المستقرة الأخيرة على علامة رئيسي وثانوي وكبير وثانوي وعلامة تصحيح تشير إليها.
على سبيل المثال، بالنسبة لإصدار يحتوي على علامة git 3.2.4، ستكون العلامات التالية على صورة الحاوية:
3
3.2
3.2.4
latest
يؤدي الالتزام الجديد بالفرع main
إلى إنشاء صورة مطور متجددة مع علامة dev
. ستتضمن إصدارات التطوير أيضًا علامة على شكل Major.minor.{patch+1}-dev.{commits-since-last-release}.{short-commit-sha}. يتوافق هذا مع الإصدار الدلالي وسيتم التعرف عليه بواسطة أنظمة التنسيق لإجراء الإصدارات التلقائية.
على سبيل المثال، إذا كان الإصدار الأخير هو 3.2.4 وكان هناك 7 التزامات جديدة منذ الإصدار وكان الالتزام القصير SHA هو fc82562، فإن علامة صورة الحاوية ستكون:
3.2.5-dev.7.fc82562
لتشغيل صورة عامل الإرساء المسحوبة:
docker run -p 8000:8000
-e SPARQL_ENDPOINT=<your_sparql_endpoint>
<your_image_id>
يقوم الأمر أعلاه بتشغيل حاوية Docker التي تقوم بتشغيل Prez على المنفذ 8000، والمتصلة بنقطة نهاية sparql المحددة.
يستخدم Prez PyTest وCoverage للاختبار وتقارير تغطية الاختبار.
لتشغيل جميع الاختبارات المتاحة:
poetry run pytest tests
لتشغيل جميع الاختبارات المتاحة لتحليل التغطية:
poetry run coverage run -m pytest tests
لإنشاء تقرير التغطية:
poetry run coverage report
بصفته خادم بيانات مرتبطة، يوفر Prez خدمة إعادة التوجيه على /identifier/redirect
التي تقبل معلمة استعلام iri
، وتبحث عن iri
في قاعدة البيانات بحثًا عن foaf:homepage
مسند ذو قيمة، وإذا كان موجودًا، قم بإرجاع استجابة إعادة التوجيه إلى القيمة.
تعتبر هذه الوظيفة مفيدة للمؤسسات التي تصدر معرفاتها الدائمة تحت اسم المجال الذي تتحكم فيه. يتم تخزين التعيين من المعرف المستمر إلى مورد الويب المستهدف في متجر SPARQL الخلفي.
يعد هذا حلاً بديلاً لخدمات المعرفات المستمرة مثل w3id.org. في بعض الحالات، يمكن استخدامه مع خدمات المعرفات المستمرة لتجنب الحاجة إلى توفير تعيين إعادة التوجيه في تكوين خادم الويب (NGINX، Apache HTTP، وما إلى ذلك) وبدلاً من ذلك، تحديد التكوين كبيانات RDF.
لكي تقوم Prez بتوصيل البيانات عبر أنظمتها الفرعية المختلفة، يجب أن تتوافق البيانات مع بعض المتطلبات الدنيا: لا يمكنك، على سبيل المثال، تشغيل VocPrez دون تحديد أي مخططات SKOS ConceptSchemes!
توفر جميع الملفات الشخصية المذكورة أعلاه أدوات التحقق التي يمكن استخدامها مع بيانات RDF لاختبارها لمعرفة ما إذا كانت صالحة. إذا كان الأمر كذلك، فسيكون بيريز على ما يرام معه.
تتوفر جميع أدوات التحقق من الملفات الشخصية من الملفات الشخصية نفسها (انتقل إلى قوائم موارد الملفات الشخصية الأخرى عبر روابط المواصفات أعلاه) ويتم تحميلها أيضًا في أداة RDFTools عبر الإنترنت والتي يمكنك استخدامها دون تنزيل أو تثبيت أي شيء:
ابحث عن VocPrez Compounded وأجهزة التحقق المشابهة. تعني البتة "المركبة" أن أداة التحقق من الصحة ستتحقق من صحة البيانات مقابل جميع متطلبات VocPrez والمتطلبات الموروثة.
ملحوظة : تم تطوير هذه الأداة مفتوحة المصدر ودعمها بشكل نشط بواسطة KurrawongAI، وهي شركة أسترالية صغيرة للرسم البياني المعرفي، ومطورين في جامعة ملبورن ومن قبل المساهمين مفتوحي المصدر أيضًا.
للإبلاغ عن المشكلات أو طرح الأسئلة، يرجى إنشاء مشكلات في أداة تعقب المشكلات أو يمكنك الاتصال بالمطورين باستخدام التفاصيل الخاصة بهم أدناه.
وهنا المطورين الرئيسيين:
كوراوونج آي https://kurrawong.net
ديفيد حبجود [email protected]
نيكولاس كار [email protected]
إدموند تشوك [email protected]
جامعة ملبورن - Prez UI بشكل رئيسي Jamie Feiss [email protected]
نحن نحب المساهمات في هذه الأداة ونشجعك على إنشاء مشكلات في أداة تعقب المشكلات الخاصة بهذا المستودع أو إرسال طلبات السحب!
توجد وثائق حول المساهمة في Prez، راجع README-Dev.md.
هذا الإصدار من Prez ومحتويات هذا المستودع متاحة أيضًا بموجب ترخيص BSD-3-Clause. راجع ملف الترخيص الخاص بهذا المستودع للحصول على التفاصيل.