Prez는 프로필별 콘텐츠 협상 표준에 따라 지식 그래프 데이터 프로필을 제공하는 데이터 구성 가능한 연결된 데이터 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는 프로젝트 루트 디렉터리에 있는 pyproject.toml
파일에 Prez의 모든 종속성(다른 Python 패키지)을 제공합니다.
Python 종속 항목을 설치하려면 다음을 실행하세요.
poetry install
참고: 시가 시스템에 설치되어 있어야 합니다. 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} | 텍스트/아노트+거북이 |
/퍼지-tbox-캐시 | 애플리케이션/json |
/tbox-캐시 | 애플리케이션/json |
/건강 | 애플리케이션/json |
/접두사 | 텍스트/아노트+거북이 |
/concept-hierarchy/{parent_curie}/narrowers | 텍스트/아노트+거북이 |
/concept-hierarchy/{parent_curie}/top-concepts | 텍스트/아노트+거북이 |
/cql | 텍스트/아노트+거북이 |
/프로필 | 텍스트/아노트+거북이 |
/찾다 | 텍스트/아노트+거북이 |
/profiles/{profile_curie} | 텍스트/아노트+거북이 |
/물체 | 텍스트/아노트+거북이 |
/식별자/리디렉션 | 해당 없음 |
/식별자/퀴리/{iri} | 텍스트/일반 |
/식별자/iri/{퀴리} | 텍스트/플라이 |
OGC 기능 API 엔드포인트는 ROOT /catalogs/{catalogId}/collections/{recordsCollectionId}/
기반으로 합니다.
엔드포인트 | 기본 MT |
---|---|
{루트}/기능 | 애플리케이션/json |
{루트}/features/docs | 텍스트/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 변수뿐입니다.
이는 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 웹 프레임워크 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
연결된 데이터 서버로서 Prez는 쿼리 매개변수 iri
받아들이고 값이 있는 foaf:homepage
조건자에 대해 데이터베이스에서 iri
를 조회하고 존재하는 경우 리디렉션 응답을 반환 /identifier/redirect
에서 리디렉션 서비스를 제공합니다. 가치.
이 기능은 자신이 관리하는 도메인 이름으로 자체 영구 식별자를 발급하는 기관에 유용합니다. 영구 식별자에서 대상 웹 리소스로의 매핑은 백엔드 SPARQL 저장소에 저장됩니다.
이는 w3id.org와 같은 영구 식별자 서비스에 대한 대체 솔루션입니다. 어떤 경우에는 웹 서버 구성(NGINX, Apache HTTP 등)에서 리디렉션 매핑을 제공할 필요를 방지하고 대신 구성을 RDF 데이터로 정의하기 위해 이러한 영구 식별자 서비스와 함께 사용할 수 있습니다.
Prez가 다양한 하위 시스템을 통해 데이터를 전달하려면 데이터가 몇 가지 최소 요구 사항을 준수해야 합니다. 예를 들어 SKOS ConceptSchemes가 정의되지 않은 상태에서는 VocPrez를 실행할 수 없습니다!
위에 나열된 모든 프로필은 RDF 데이터와 함께 사용하여 데이터가 유효한지 테스트할 수 있는 유효성 검사기를 제공합니다. 그렇다면 Prez는 괜찮을 것입니다.
프로필의 유효성 검사기는 모두 프로필 자체에서 사용할 수 있으며(위의 사양 링크를 통해 다른 프로필 리소스 목록으로 이동) 아무 것도 다운로드하거나 설치하지 않고도 사용할 수 있는 RDFTools 온라인 도구에도 로드됩니다.
VocPrez 복합 및 유사한 검증기를 찾으십시오. '합성' 비트는 유효성 검사기가 모든 VocPrez 및 상속된 요구 사항에 대해 데이터를 검증한다는 것을 의미합니다.
참고 : 이 오픈 소스 도구는 호주의 소규모 지식 그래프 회사인 KurrawongAI, 멜버른 대학의 개발자 및 오픈 소스 기여자들에 의해 적극적으로 개발되고 지원됩니다.
문제를 신고하거나 질문을 제기하려면 이슈 트래커에서 문제를 생성하거나 아래 세부 정보를 사용하여 개발자에게 문의할 수 있습니다.
수석 개발자는 다음과 같습니다.
쿠라웡AI https://kurrawong.net
데이비드 하브굿 [email protected]
니콜라스 카 [email protected]
에드먼드 척 [email protected]
멜버른 대학교 - Prez UI(주로 Jamie Feiss ) [email protected]
우리는 이 도구에 대한 기여를 환영하며 이 저장소의 이슈 트래커에서 이슈를 생성하거나 풀 요청을 제출할 것을 권장합니다!
Prez에 기여하는 방법에 대한 문서가 있습니다. README-Dev.md를 참조하세요.
이 Prez 버전과 이 저장소의 콘텐츠는 BSD-3-Clause License에 따라 사용할 수도 있습니다. 자세한 내용은 이 저장소의 LICENSE 파일을 참조하세요.