Prez は、プロファイルによるコンテンツ ネゴシエーション標準に従ってナレッジ グラフ データのプロファイルを提供する、データ構成可能な Linked Data API フレームワークです。
UIはどこにありますか?
Prez はデータのみを配信します (通常は RDF ですが、GeoJSON、XML などの場合もあります)。また、Prez がデータベース内で見つけることができるすべてのオブジェクトと述語のラベルを含む特別な形式の RDF を配信します。
Prez のラベルが付いた RDF を HTML やその他の派手なグラフィカル ウィジェットとしてレンダリングできる UI が必要な場合は、Prez UI を参照してください。
コンピュータ上に Prez のコピーを取得するには、次のコマンドを実行します。
git clone https://github.com/RDFLib/prez
Prez は、Python のパッケージ化および依存関係ツールである Poetry を使用して開発されています。 Poetry は、Prez のすべての依存関係 (他の Python パッケージ) をプロジェクトのルート ディレクトリにあるpyproject.toml
ファイルに示します。
Python の依存関係をインストールするには、次のコマンドを実行します。
poetry install
注:詩はシステムにインストールされている必要があります。 Poetry がインストールされているかどうかを確認するには、
poetry --version
を実行します。特定の依存関係グループのインストールと管理に関するヒントについては、ドキュメントを確認してください。
Prez は次のエンドポイントを提供します。
終点 | デフォルトのMT |
---|---|
/ | テキスト/アノット+タートル |
/docs | テキスト/html |
/catalogs/{カタログID} | テキスト/アノット+タートル |
/catalogs/{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 | テキスト/アノット+タートル |
/プロファイル | テキスト/アノット+タートル |
/検索 | テキスト/アノット+タートル |
/profiles/{profile_curie} | テキスト/アノット+タートル |
/物体 | テキスト/アノット+タートル |
/識別子/リダイレクト | 該当なし |
/identifier/curie/{iri} | テキスト/プレーン |
/identifier/iri/{キュリー} | テキスト/無地 |
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} | アプリケーション/ジオ+jso |
次の環境変数を使用して Prez を構成できます。ほとんどの場合、必要なのは SPARQL_ENDPOINT 変数だけです。
これらは、python-dotenv 経由で読み取られる「.env」ファイルに設定できます。あるいは、Prez が実行されている環境に直接設定します。
sparql_endpoint
: Prez の読み取り専用 SPARQL エンドポイント。デフォルトはNone
です。sparql_username
: RDF DB で必要な場合、Prez SPARQL エンドポイントのユーザー名。デフォルトはNone
です。sparql_password
: RDF DB で必要な場合、Prez SPARQL エンドポイントのパスワード。デフォルトは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>
上記のコマンドは、指定された sparql エンドポイントに接続されたポート 8000 で Prez を実行している Docker コンテナを起動します。
Prez は、テストとテスト カバレッジ レポートに PyTest と Coverage を使用します。
利用可能なすべてのテストを実行するには:
poetry run pytest tests
カバレッジ分析に使用可能なすべてのテストを実行するには、次の手順を実行します。
poetry run coverage run -m pytest tests
カバレッジレポートを生成するには:
poetry run coverage report
Linked Data サーバーとして、Prez は/identifier/redirect
でリダイレクト サービスを提供します。このサービスはクエリ パラメーターiri
受け入れ、値を持つfoaf:homepage
述語のデータベース内のiri
検索し、存在する場合はリダイレクト応答を返します。値。
この機能は、管理するドメイン名で独自の永続的な識別子を発行する機関にとって便利です。永続識別子からターゲット Web リソースへのマッピングは、バックエンド SPARQL ストアに保存されます。
これは、w3id.org などの永続的な識別子サービスの代替ソリューションです。場合によっては、このような永続識別子サービスと組み合わせて使用すると、Web サーバー構成 (NGINX、Apache HTTP など) でリダイレクト マッピングを提供する必要がなくなり、代わりに構成を RDF データとして定義できます。
Prez がさまざまなサブシステム経由でデータを配信するには、データがいくつかの最小要件に準拠している必要があります。たとえば、SKOS ConceptSchemes が定義されていない状態では VocPrez を実行できません。
上記のすべてのプロファイルは、RDF データが有効かどうかをテストするために使用できるバリデータを提供します。もしそうであれば、Prez はそれで問題ありません。
プロファイルのバリデーターはすべてプロファイル自体から入手でき (上記の仕様リンクを介して他のプロファイル リソースのリストに移動します)、また、何もダウンロードまたはインストールせずに使用できるRDFToolsオンライン ツールにもロードされます。
VocPrez Compoundedおよび同様のバリデーターを探してください。 「複合」ビットは、バリデーターがすべての VocPrez および継承された要件に対してデータを検証することを意味します。
注: このオープン ソース ツールは、オーストラリアの小規模なナレッジ グラフ会社である KurrawongAI、メルボルン大学の開発者、およびオープン ソースの貢献者によって積極的に開発およびサポートされています。
問題にフラグを立てたり、質問を提起したりするには、Issue Tracker で問題を作成するか、以下の詳細を使用して開発者に連絡することができます。
主な開発者は次のとおりです。
クラウォンAI https://kurrawong.net
デビッド・ハブグッド[email protected]
ニコラス・カー[email protected]
エドモンド・チュク[email protected]
メルボルン大学- Prez UI 主にJamie Feiss [email protected]
私たちはこのツールへの貢献を歓迎しており、このリポジトリの Issue Tracker で Issue を作成するか、プル リクエストを送信することをお勧めします。
Prez への貢献に関するドキュメントがあります。README-Dev.md を参照してください。
Prez のこのバージョンとこのリポジトリのコンテンツは、BSD-3 条項ライセンスの下でも利用できます。詳細については、このリポジトリの LICENSE ファイルを参照してください。