Prez ist ein datenkonfigurierbares Linked Data API-Framework, das Profile von Knowledge Graph-Daten gemäß dem Content Negotiation by Profile-Standard bereitstellt.
Wo ist die Benutzeroberfläche?
Prez liefert nur Daten – normalerweise RDF, kann aber auch GeoJSON, XML usw. sein – und es liefert eine spezielle Form von RDF, die Beschriftungen für alle Objekte und Prädikate enthält, die Prez in seiner Datenbank finden kann.
Wenn Sie eine Benutzeroberfläche benötigen, die das mit Prez gekennzeichnete RDF als HTML und andere ausgefallene grafische Widgets rendern kann, sehen Sie sich die Prez-Benutzeroberfläche an.
Um eine Kopie von Prez auf Ihren Computer zu laden, führen Sie Folgendes aus:
git clone https://github.com/RDFLib/prez
Prez wurde mit Poetry entwickelt, einem Python-Paketierungs- und Abhängigkeitstool. Poetry präsentiert alle Abhängigkeiten von Prez (andere Python-Pakete) in der Datei pyproject.toml
die sich im Stammverzeichnis des Projekts befindet.
Um die Python-Abhängigkeiten zu installieren, führen Sie Folgendes aus:
poetry install
Hinweis: Poetry muss auf dem System installiert sein. Um zu überprüfen, ob Poetry installiert ist, führen Sie
poetry --version
aus. Tipps zur Installation und Verwaltung bestimmter Abhängigkeitsgruppen finden Sie in der Dokumentation.
Prez liefert die folgenden Endpunkte:
Endpunkt | Standard-MT |
---|---|
/ | text/anot+schildkröte |
/docs | text/html |
/catalogs/{catalogId} | text/anot+schildkröte |
/catalogs/{catalogId}/collections | text/anot+schildkröte |
/catalogs/{catalogId}/collections/{recordsCollectionId} | text/anot+schildkröte |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items | text/anot+schildkröte |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items/{itemId} | text/anot+schildkröte |
/purge-tbox-cache | application/json |
/tbox-cache | application/json |
/Gesundheit | application/json |
/Präfixe | text/anot+schildkröte |
/concept-hierarchy/{parent_curie}/narrowers | text/anot+schildkröte |
/concept-hierarchy/{parent_curie}/top-concepts | text/anot+schildkröte |
/cql | text/anot+schildkröte |
/profile | text/anot+schildkröte |
/suchen | text/anot+schildkröte |
/profiles/{profile_curie} | text/anot+schildkröte |
/Objekt | text/anot+schildkröte |
/identifier/redirect | N / A |
/identifier/curie/{iri} | Text/einfach |
/identifier/iri/{curie} | Text/Plai |
Die OGC Features API-Endpunkte basieren auf dem ROOT /catalogs/{catalogId}/collections/{recordsCollectionId}/
Endpunkt | Standard-MT |
---|---|
{ROOT}/features | application/json |
{ROOT}/features/docs | text/html |
{ROOT}/features/conformance | application/json |
{ROOT}/features/collections | application/json |
{ROOT}/features/collections/{collectionId} | application/json |
{ROOT}/features/collections/{collectionId}/items | application/geo+json |
{ROOT}/features/collections/{collectionId}/items/{featureId} | application/geo+jso |
Die folgenden Umgebungsvariablen können zum Konfigurieren von Prez verwendet werden: In den meisten Fällen ist lediglich die Variable SPARQL_ENDPOINT erforderlich.
Diese können in einer „.env“-Datei festgelegt werden, die über python-dotenv eingelesen wird. Alternativ können Sie sie direkt in der Umgebung festlegen, in der Prez ausgeführt wird.
sparql_endpoint
: Schreibgeschützter SPARQL-Endpunkt für Prez. Der Standardwert ist None
.sparql_username
: Ein Benutzername für den Prez SPARQL-Endpunkt, falls von der RDF-Datenbank erforderlich. Der Standardwert ist None
.sparql_password
: Ein Passwort für den Prez SPARQL-Endpunkt, falls von der RDF-Datenbank erforderlich. Der Standardwert ist None
.enable_sparql_endpoint
: Ob der SPARQL-Endpunkt aktiviert werden soll. Das heißt, ob prez den SPARQL-Endpunkt des Remote-Repositorys (normalerweise ein Triplestore) verfügbar macht. Der Standardwert ist False
. Beachten Sie, dass der SPARQL-Endpunkt, wenn er aktiviert ist, POST-Anfragen unterstützt. Prez selbst nimmt keine Aktualisierungen am Remote-Repository vor (z. B. am Remote-Triplestore). Wenn jedoch der Remote-SPARQL-Endpunkt aktiviert ist, ist es dann möglich, dass Benutzer mithilfe des SPARQL-Endpunkts Aktualisierungen am Remote-Repository vornehmen können. protocol
: Das Protokoll, das zur Übermittlung von Prez verwendet wird. Der Standardwert ist "http"
.host
: Der Host-Domänenname von Prez. Der Standardwert ist "localhost"
.port
: Der Port Prez wird zugänglich gemacht. Der Standardwert ist 8000
. system_uri
: Ein IRI für das Prez-System als Ganzes. Dieser Wert erscheint im von Prez bereitgestellten Landingpage-RDF ( "/"
). Der Standardwert ist f"{protocol}://{host}:{port}"
. log_level
: Protokollierungsebene. Der Standardwert ist "INFO"
.log_output
: Protokollierungsausgabeziel. Der Standardwert ist "stdout"
. prez_title
: Titel für die Prez-Instanz. Der Standardwert ist "Prez"
.prez_desc
: Beschreibung der Prez-Instanz. Standard ist eine Beschreibung der Prez-Webframework-API.prez_version
: Version der Prez-Instanz. Der Standardwert ist None
. curie_separator
: Trennzeichen, das in CURIEs verwendet wird. Der Standardwert ist ":"
. Dieses Trennzeichen erscheint in von Prez generierten Links und wiederum in URL-Pfaden. order_lists_by_label
: Ob Listen nach Label sortiert werden sollen. Der Standardwert ist True
. Wird zum Anzeigen von RDF mit für Menschen lesbaren Etiketten verwendet.
label_predicates
: Liste der für Etiketten verwendeten Prädikate. Standardmäßig umfasst:skos:prefLabel
dcterms:title
rdfs:label
sdo:name
Wenn ein annotierter (
+anot
) Medientyp verwendet wird, fügt Prez Tripel für jeden URI in die erste Antwort ein, der eine der oben genannten Eigenschaften hat. Diese Annotationstripel werden dann zwischengespeichert. Die Annotationen dienen der Darstellung, beispielsweise von HTML-Seiten.
Ähnlich wie bei den oben genannten Label-Prädikaten.
description_predicates
: Liste der für Beschreibungen verwendeten Prädikate. Standardmäßig umfasst:skos:definition
dcterms:description
sdo:description
Ähnlich wie bei den oben genannten Provenienzprädikaten.
provenance_predicates
: Liste der für die Herkunft verwendeten Prädikate. Standardmäßig umfasst:dcterms:provenance
Der Annotationsmechanismus kann außerdem verwendet werden, um bestimmte Eigenschaften generell zurückzugeben, sofern vorhanden.
other_predicates
: Liste anderer Prädikate. Standardmäßig umfasst:sdo:color
reg:status
skos:narrower
skos:broader
sparql_repo_type
: Typ des SPARQL-Repositorys. Der Standardwert ist "remote"
. Optionen sind "remote"
, "pyoxigraph"
und "oxrdflib"
sparql_timeout
: Zeitüberschreitung für SPARQL-Abfragen. Der Standardwert ist 30
. prez_contact
: Kontaktinformationen für Prez. Der Standardwert ist None
. disable_prefix_generation
: Ob die Präfixgenerierung deaktiviert werden soll. Es wird empfohlen, die Präfixgenerierung für große Datenrepositorys zu deaktivieren . Darüber hinaus wird empfohlen, Präfixe immer im Verzeichnis prez/reference_data/prefixes/
anzugeben. Der Standardwert ist False
. default_language
: Standardsprache für Prez. Der Standardwert ist "en"
.default_search_predicates
: Standardsuchprädikate. Standardmäßig umfasst:rdfs:label
skos:prefLabel
sdo:name
dcterms:title
Wird in Verbindung mit dem Pyoxigraph-Repo verwendet. Gibt ein Verzeichnis (aus dem Repository-Stammverzeichnis) an, das in das Pyoxigraph-in-Memory-Datendiagramm geladen werden soll. Wird für andere Repository-Typen nicht verwendet.
local_rdf_dir
: Verzeichnis für lokale RDF-Dateien. Der Standardwert ist "rdf"
. endpoint_structure
: Standardstruktur der Endpunkte, die zum Generieren von Links verwendet wird. Der Standardwert ist ("catalogs", "collections", "items")
. system_endpoints
: Liste der Systemendpunkte. Standardmäßig umfasst:ep:system/profile-listing
ep:system/profile-object
listing_count_limit
: Die maximale Anzahl der Elemente, die für einen Listing-Endpunkt gezählt werden sollen. Zählungen, die diesen Grenzwert überschreiten, werden als „>N“ zurückgegeben, wobei N der Grenzwert ist. Der Standardwert ist 100
.search_count_limit
: Die maximale Anzahl von Elementen, die in einem Suchergebnis zurückgegeben werden sollen. Der Standardwert ist 10
. temporal_predicate
: Das für zeitliche Eigenschaften verwendete Prädikat. Der Standardwert ist sdo:temporal
. endpoint_to_template_query_filename
: Ein Wörterbuch, das Endpunkte den Dateinamen von Abfragevorlagen zuordnet. Standard ist ein leeres Wörterbuch. Dieser Abschnitt dient der lokalen Entwicklung von Prez. Sehen Sie sich unten die Ausführungsoptionen an, um Prez in der Produktion auszuführen.
So führen Sie den Entwicklungsserver aus (mit automatischem Neuladen bei Codeänderungen):
poetry run python main.py
Prez-Container-Images werden mit einer Github-Aktion erstellt und sind hier verfügbar.
Die Docker-Datei im Repository kann auch zum Erstellen eines Docker-Images verwendet werden.
Der Bildname lautet ghcr.io/rdflib/prez
.
Der latest
Tag verweist auf die neueste stabile Version von Prez. Alle neuesten stabilen Versionen haben ein Major-, Major- und Minor-Tag sowie ein Major-, Minor- und Patch-Tag, das darauf verweist.
Für eine Version mit dem Git-Tag 3.2.4 befinden sich beispielsweise die folgenden Tags auf dem Container-Image:
3
3.2
3.2.4
latest
Durch neue Commits für den main
wird ein fortlaufendes Dev-Image mit dem dev
-Tag erstellt. Die Entwickler-Builds enthalten außerdem ein Tag in der Form „major.minor.{patch+1}-dev.{commits-since-last-release}.{short-commit-sha}“. Dies entspricht der semantischen Versionierung und wird von Orchestrierungssystemen erkannt, um automatische Releases durchzuführen.
Wenn die neueste Version beispielsweise 3.2.4 ist und es seit der Veröffentlichung sieben neue Commits gab und der kurze Commit-SHA fc82562 ist, lautet das Container-Image-Tag wie folgt:
3.2.5-dev.7.fc82562
So führen Sie das gezogene Docker-Image aus:
docker run -p 8000:8000
-e SPARQL_ENDPOINT=<your_sparql_endpoint>
<your_image_id>
Der obige Befehl startet einen Docker-Container, der Prez auf Port 8000 ausführt und mit dem angegebenen Sparql-Endpunkt verbunden ist.
Prez verwendet PyTest und Coverage für Tests und Testabdeckungsberichte.
So führen Sie alle verfügbaren Tests aus:
poetry run pytest tests
So führen Sie alle verfügbaren Tests für die Abdeckungsanalyse aus:
poetry run coverage run -m pytest tests
So erstellen Sie einen Abdeckungsbericht:
poetry run coverage report
Als Linked-Data-Server stellt Prez einen Umleitungsdienst unter /identifier/redirect
bereit, der einen Abfrageparameter iri
akzeptiert, den iri
in der Datenbank nach einem foaf:homepage
Prädikat mit einem Wert durchsucht und, falls vorhanden, eine Umleitungsantwort an zurückgibt der Wert.
Diese Funktionalität ist für Institutionen nützlich, die ihre eigenen dauerhaften Identifikatoren unter einem von ihnen kontrollierten Domänennamen vergeben. Die Zuordnung vom persistenten Bezeichner zur Zielwebressource wird im Backend-SPARQL-Speicher gespeichert.
Dies ist eine alternative Lösung zu persistenten Identifikatordiensten wie w3id.org. In einigen Fällen kann es zusammen mit solchen persistenten Identifikatordiensten verwendet werden, um die Bereitstellung der Umleitungszuordnung in der Webserverkonfiguration (NGINX, Apache HTTP usw.) zu vermeiden und stattdessen die Konfiguration als RDF-Daten zu definieren.
Damit Prez Daten über seine verschiedenen Subsysteme liefern kann, müssen die Daten einigen Mindestanforderungen entsprechen: Sie können VocPrez beispielsweise nicht ausführen, ohne dass SKOS ConceptSchemes definiert sind!
Alle oben aufgeführten Profile stellen Validatoren bereit, die mit RDF-Daten verwendet werden können, um zu testen, ob sie gültig sind. Wenn ja, wird Prez damit gut zurechtkommen.
Die Validatoren der Profile sind alle in den Profilen selbst verfügbar (navigieren Sie über die obigen Spezifikationslinks zu den Auflistungen anderer Profilressourcen) und werden auch in das Online-Tool RDFTools geladen, das Sie verwenden können, ohne etwas herunterladen oder installieren zu müssen:
Suchen Sie nach VocPrez Compounded und ähnlichen Validatoren. Das „zusammengesetzte“ Bit bedeutet, dass der Validator die Daten anhand aller VocPrez- und geerbten Anforderungen validiert.
HINWEIS : Dieses Open-Source-Tool wird aktiv von KurrawongAI, einem kleinen australischen Knowledge Graph-Unternehmen, Entwicklern an der University of Melbourne und auch von Open-Source-Mitwirkenden entwickelt und unterstützt.
Um Probleme zu kennzeichnen oder Fragen zu stellen, erstellen Sie bitte Probleme im Issue Tracker oder kontaktieren Sie die Entwickler über die unten angegebenen Kontaktdaten.
Hier sind die Hauptentwickler:
KurrawongAI https://kurrawong.net
David Habgood [email protected]
Nicholas Car [email protected]
Edmond Chuc [email protected]
University of Melbourne – Prez UI hauptsächlich Jamie Feiss [email protected]
Wir freuen uns über Beiträge zu diesem Tool und ermutigen Sie, Probleme im Issue Tracker dieses Repositorys zu erstellen oder Pull-Anfragen einzureichen!
Es gibt Dokumentation zum Mitwirken an Prez, siehe README-Dev.md.
Diese Version von Prez und die Inhalte dieses Repositorys sind auch unter der BSD-3-Klausel-Lizenz verfügbar. Weitere Informationen finden Sie in der LICENSE-Datei dieses Repositorys.