Prez เป็นเฟรมเวิร์ก Linked Data API ที่กำหนดค่าข้อมูลได้ ซึ่งนำเสนอ โปรไฟล์ ของข้อมูลกราฟความรู้ตามมาตรฐาน Content Negotiation ตามมาตรฐานโปรไฟล์
UI อยู่ที่ไหน
Prez ส่งข้อมูลเท่านั้น โดยปกติจะเป็น RDF แต่อาจเป็น GeoJSON, XML ฯลฯ และยังมีรูปแบบพิเศษของ RDF ซึ่งรวมถึงป้ายกำกับสำหรับอ็อบเจ็กต์และเพรดิเคตทั้งหมดที่ Prez สามารถค้นหาได้ในฐานข้อมูล
หากคุณต้องการ UI ที่สามารถแสดงผล RDF ที่ติดป้ายกำกับ Prez เป็น HTML และวิดเจ็ตกราฟิกที่สวยงามอื่นๆ โปรดดู Prez UI
หากต้องการรับสำเนา Prez บนคอมพิวเตอร์ของคุณ ให้เรียกใช้:
git clone https://github.com/RDFLib/prez
Prez ได้รับการพัฒนาด้วย Poetry ซึ่งเป็นเครื่องมือบรรจุภัณฑ์และการอ้างอิงของ Python Poetry นำเสนอการพึ่งพาทั้งหมดของ Prez (แพ็คเกจ Python อื่น ๆ ) ในไฟล์ pyproject.toml
ที่อยู่ในไดเร็กทอรีรูทของโปรเจ็กต์
หากต้องการติดตั้งการพึ่งพา Python ให้รัน:
poetry install
หมายเหตุ: จะต้องติดตั้ง Poetry บนระบบ เพื่อตรวจสอบว่าคุณได้ติดตั้ง Poetry หรือไม่ ให้รัน
poetry --version
สำหรับเคล็ดลับในการติดตั้งและการจัดการกลุ่มการขึ้นต่อกันเฉพาะ โปรดดูเอกสารประกอบ
Prez มอบจุดสิ้นสุดต่อไปนี้:
จุดสิ้นสุด | MT เริ่มต้น |
---|---|
- | ข้อความ/หมายเหตุ+เต่า |
/เอกสาร | ข้อความ/html |
/catalogs/{catalogId} | ข้อความ/หมายเหตุ+เต่า |
/catalogs/{catalogId}/collections | ข้อความ/หมายเหตุ+เต่า |
/catalogs/{catalogId}/collections/{recordsCollectionId} | ข้อความ/หมายเหตุ+เต่า |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items | ข้อความ/หมายเหตุ+เต่า |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items/{itemId} | ข้อความ/หมายเหตุ+เต่า |
/purge-tbox-cache | แอปพลิเคชัน/json |
/tbox-cache | แอปพลิเคชัน/json |
/สุขภาพ | แอปพลิเคชัน/json |
/คำนำหน้า | ข้อความ/หมายเหตุ+เต่า |
/concept-hierarchy/{parent_curie}/narrowers | ข้อความ/หมายเหตุ+เต่า |
/concept-hierarchy/{parent_curie}/top-concepts | ข้อความ/หมายเหตุ+เต่า |
/cql | ข้อความ/หมายเหตุ+เต่า |
/โปรไฟล์ | ข้อความ/หมายเหตุ+เต่า |
/ค้นหา | ข้อความ/หมายเหตุ+เต่า |
/profiles/{profile_curie} | ข้อความ/หมายเหตุ+เต่า |
/วัตถุ | ข้อความ/หมายเหตุ+เต่า |
/ตัวระบุ/เปลี่ยนเส้นทาง | ไม่มี |
/ตัวระบุ/curie/{iri} | ข้อความ/ธรรมดา |
/ตัวระบุ/iri/{curie} | ข้อความ/ลาย |
จุดสิ้นสุด API ของคุณลักษณะ OGC จะขึ้นอยู่กับ ROOT /catalogs/{catalogId}/collections/{recordsCollectionId}/
จุดสิ้นสุด | MT เริ่มต้น |
---|---|
{รูท}/ฟีเจอร์ | แอปพลิเคชัน/json |
{ROOT}/features/docs | ข้อความ/html |
{ROOT}/คุณลักษณะ/ความสอดคล้อง | แอปพลิเคชัน/json |
{ROOT}/features/collections | แอปพลิเคชัน/json |
{ROOT}/features/collections/{collectionId} | แอปพลิเคชัน/json |
{ROOT}/features/collections/{collectionId}/items | แอปพลิเคชัน/geo+json |
{ROOT}/features/collections/{collectionId}/items/{featureId} | แอปพลิเคชัน/geo+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 ของที่เก็บข้อมูลระยะไกลหรือไม่ (โดยทั่วไปคือ triplestore) ค่าเริ่มต้นคือ False
หมายเหตุ จุดสิ้นสุด SPARQL เมื่อเปิดใช้งานรองรับคำขอ POST Prez เองไม่ได้ทำการอัปเดตใดๆ กับพื้นที่เก็บข้อมูลระยะไกล (เช่น Triplestore ระยะไกล) อย่างไรก็ตาม หากเปิดใช้งานตำแหน่งข้อมูล SPARQL ระยะไกล ก็เป็นไปได้ที่ผู้ใช้สามารถอัปเดตไปยังพื้นที่เก็บข้อมูลระยะไกลโดยใช้ตำแหน่งข้อมูล SPARQL ได้ protocol
: โปรโตคอลที่ใช้ในการส่ง Prez ค่าเริ่มต้นคือ "http"
host
: ชื่อโดเมนโฮสต์ของ Prez ค่าเริ่มต้นคือ "localhost"
port
: พอร์ต Prez สามารถเข้าถึงได้ ค่าเริ่มต้นคือ 8000
system_uri
: IRI สำหรับระบบ Prez โดยรวม ค่านี้ปรากฏในหน้า Landing Page RDF ที่จัดส่งโดย Prez ( "/"
) ค่าเริ่มต้นคือ f"{protocol}://{host}:{port}"
log_level
: ระดับการบันทึก ค่าเริ่มต้นคือ "INFO"
log_output
: การบันทึกปลายทางเอาต์พุต ค่าเริ่มต้นคือ "stdout"
prez_title
: ชื่อสำหรับอินสแตนซ์ Prez ค่าเริ่มต้นคือ "Prez"
prez_desc
: คำอธิบายของอินสแตนซ์ Prez ค่าเริ่มต้นคือคำอธิบายของ Prez web framework APIprez_version
: เวอร์ชันของอินสแตนซ์ Prez ค่าเริ่มต้นคือ None
curie_separator
: ตัวคั่นที่ใช้ใน CURIE ค่าเริ่มต้นคือ ":"
ตัวคั่นนี้จะปรากฏในลิงก์ที่สร้างโดย 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
ใช้ร่วมกับ repo 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 แบบต่อเนื่องพร้อมกับแท็ก dev
บิลด์ dev จะมีแท็กในรูปแบบของ major.minor.{patch+1}-dev.{commits-since-last-release}.{short-commit-sha} สิ่งนี้สอดคล้องกับการกำหนดเวอร์ชันเชิงความหมาย และจะได้รับการยอมรับจากระบบการจัดการเพื่อดำเนินการเผยแพร่อัตโนมัติ
ตัวอย่างเช่น หากรีลีสล่าสุดคือ 3.2.4 และมีคอมมิตใหม่ 7 รายการนับตั้งแต่รีลีสและคอมมิตแบบสั้นคือ 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 เพื่อทดสอบเพื่อดูว่าข้อมูลนั้นถูกต้องหรือไม่ ถ้าเป็นเช่นนั้น Prez ก็สบายดี
เครื่องมือตรวจสอบโปรไฟล์ทั้งหมดพร้อมใช้งานจากโปรไฟล์ (นำทางไปยังรายการทรัพยากรโปรไฟล์อื่น ๆ ผ่านลิงก์ข้อกำหนดด้านบน) และยังโหลดลงในเครื่องมือออนไลน์ RDFTools ซึ่งคุณสามารถใช้งานได้โดยไม่ต้องดาวน์โหลดหรือติดตั้งอะไรเลย:
มองหา VocPrez Compounded และเครื่องมือตรวจสอบที่คล้ายกัน บิต 'ผสม' หมายความว่าเครื่องมือตรวจสอบความถูกต้องจะตรวจสอบข้อมูลกับ VocPrez และข้อกำหนดที่สืบทอดทั้งหมด
หมายเหตุ : เครื่องมือโอเพ่นซอร์สนี้ได้รับการพัฒนาและสนับสนุนโดย KurrawongAI ซึ่งเป็นบริษัทกราฟความรู้ขนาดเล็กของออสเตรเลีย นักพัฒนาจากมหาวิทยาลัยเมลเบิร์น และโดยผู้ร่วมให้ข้อมูลโอเพ่นซอร์สด้วย
หากต้องการแจ้งปัญหาหรือถามคำถาม โปรดสร้างปัญหาในตัวติดตามปัญหา หรือคุณสามารถติดต่อนักพัฒนาโดยใช้รายละเอียดด้านล่าง
ต่อไปนี้เป็นผู้พัฒนาหลัก:
KurrawongAI https://kurrawong.net
เดวิด ฮับกู๊ด [email protected]
นิโคลัส คาร์ [email protected]
เอ็ดมอนด์ ชุก [email protected]
มหาวิทยาลัยเมลเบิร์น - Prez UI ส่วนใหญ่เป็น Jamie Feiss [email protected]
เราชอบการมีส่วนร่วมกับเครื่องมือนี้และสนับสนุนให้คุณสร้างปัญหาในตัวติดตามปัญหาของพื้นที่เก็บข้อมูลนี้หรือส่งคำขอดึง!
มีเอกสารเกี่ยวกับการมีส่วนร่วมใน Prez ดูที่ README-Dev.md
Prez เวอร์ชันนี้และเนื้อหาในพื้นที่เก็บข้อมูลนี้มีให้ใช้งานภายใต้สิทธิ์การใช้งาน BSD-3-Clause ดูไฟล์ LICENSE ของพื้นที่เก็บข้อมูลนี้เพื่อดูรายละเอียด