Prez 是一個可設定資料的關聯資料 API 框架,可根據設定檔內容協商標準提供知識圖資料設定檔。
使用者介面在哪裡?
Prez 僅提供資料(通常是 RDF,但也可以是 GeoJSON、XML 等),並且它提供一種特殊形式的 RDF,其中包括 Prez 可以在其資料庫中找到的所有物件和謂詞的標籤。
如果您想要一個可以將 Prez 標記的 RDF 呈現為 HTML 的 UI 和其他精美的圖形小部件,請參閱 Prez UI。
若要在電腦上取得 Prez 的副本,請執行:
git clone https://github.com/RDFLib/prez
Prez 是使用 Poetry 開發的,Poetry 是一個 Python 打包和依賴工具。 Poetry 在位於專案根目錄的pyproject.toml
檔案中提供了 Prez 的所有相依性(其他 Python 套件)。
若要安裝 Python 依賴項,請執行:
poetry install
注意:系統上必須安裝Poetry。若要檢查是否安裝了 Poetry,請執行
poetry --version
。有關安裝和管理特定依賴項群組的提示,請查看文件。
Prez 提供以下端點:
端點 | 預設MT |
---|---|
/ | 文/阿諾+海龜 |
/文件 | 文字/html |
/目錄/{catalogId} | 文/阿諾+海龜 |
/目錄/{catalogId}/集合 | 文/阿諾+海龜 |
/catalogs/{catalogId}/collections/{recordsCollectionId} | 文/阿諾+海龜 |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items | 文/阿諾+海龜 |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items/{itemId} | 文/阿諾+海龜 |
/清除-tbox-快取 | 應用程式/json |
/tbox-快取 | 應用程式/json |
/健康 | 應用程式/json |
/前綴 | 文/阿諾+海龜 |
/concept-hierarchy/{parent_curie}/narrowers | 文/阿諾+海龜 |
/concept-hierarchy/{parent_curie}/top-concepts | 文/阿諾+海龜 |
/cql | 文/阿諾+海龜 |
/個人資料 | 文/阿諾+海龜 |
/搜尋 | 文/阿諾+海龜 |
/個人資料/{profile_curie} | 文/阿諾+海龜 |
/目的 | 文/阿諾+海龜 |
/標識符/重定向 | 不適用 |
/標識符/居里/{iri} | 文字/純文字 |
/標識符/iri/{居里} | 文/plai |
OGC 功能 API 端點是基於 ROOT /catalogs/{catalogId}/collections/{recordsCollectionId}/
端點 | 預設MT |
---|---|
{ROOT}/功能 | 應用程式/json |
{ROOT}/功能/文檔 | 文字/html |
{ROOT}/功能/一致性 | 應用程式/json |
{ROOT}/功能/集合 | 應用程式/json |
{ROOT}/features/collections/{collectionId} | 應用程式/json |
{ROOT}/features/collections/{collectionId}/items | 應用程式/地理+json |
{ROOT}/features/collections/{collectionId}/items/{featureId} | 應用程式/geo+jso |
以下環境變數可用於配置 Prez:在大多數情況下,所需的只是 SPARQL_ENDPOINT 變數。
這些可以在“.env”檔案中設置,該檔案將透過 python-dotenv 讀取。或者,直接在運行 Prez 的環境中設定它們。
sparql_endpoint
:Prez 的唯讀 SPARQL 端點。預設為None
。sparql_username
:Prez SPARQL 端點的使用者名稱(如果 RDF DB 需要)。預設為None
。sparql_password
:Prez SPARQL 端點的密碼(如果 RDF DB 需要)。預設為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
:整個 Prez 系統的 IRI。該值出現在 Prez 交付的登陸頁面 RDF 中( "/"
)。預設為f"{protocol}://{host}:{port}"
。 log_level
:日誌記錄等級。預設為"INFO"
。log_output
:記錄輸出目的地。預設為"stdout"
。 prez_title
:Prez 實例的標題。預設為"Prez"
。prez_desc
:Prez 實例的描述。預設值是 Prez Web 框架 API 的描述。prez_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
與 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 映像:
docker run -p 8000:8000
-e SPARQL_ENDPOINT=<your_sparql_endpoint>
<your_image_id>
上面的命令啟動一個在連接埠 8000 上執行 Prez 的 Docker 容器,該容器連接到指定的 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
謂詞,如果存在,則傳回重定向回應值。
此功能對於在其控制的網域下發布自己的持久標識符的機構非常有用。從持久標識符到目標 Web 資源的對應儲存在後端 SPARQL 儲存中。
這是 w3id.org 等持久標識符服務的替代解決方案。在某些情況下,它可以與此類持久標識符服務一起使用,以避免需要在 Web 伺服器配置(NGINX、Apache HTTP 等)中提供重定向映射,而是將配置定義為 RDF 資料。
為了讓 Prez 透過其各個子系統傳遞數據,數據需要符合一些最低要求:例如,在沒有定義任何 SKOS ConceptSchemes 的情況下,您無法運行 VocPrez!
上面列出的所有設定檔都提供了驗證器,可以與 RDF 資料一起使用來測試其是否有效。如果是的話,Prez 就會覺得很舒服。
設定檔的驗證器都可以從設定檔本身取得(透過上面的規範連結導航到其他設定檔資源的清單),並且它們也被載入到RDFTools線上工具中,您可以使用該工具而無需下載或安裝任何內容:
尋找VocPrez 複合驗證器和類似的驗證器。 「複合」位元意味著驗證器將根據所有 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 許可證下使用。有關詳細信息,請參閱此存儲庫的許可證文件。