Prez es un marco de API de datos vinculados configurable por datos que ofrece perfiles de datos de Knowledge Graph de acuerdo con el estándar de negociación de contenido por perfil.
¿Dónde está la interfaz de usuario?
Prez solo entrega datos (generalmente RDF, pero podría ser GeoJSON, XML, etc.) y entrega una forma especial de RDF que incluye etiquetas para todos los objetos y predicados que Prez puede encontrar en su base de datos.
Si desea una interfaz de usuario que pueda representar el RDF etiquetado de Prez como HTML y otros widgets gráficos sofisticados, consulte la interfaz de usuario de Prez.
Para obtener una copia de Prez en su computadora, ejecute:
git clone https://github.com/RDFLib/prez
Prez está desarrollado con Poetry, una herramienta de dependencia y empaquetado de Python. Poetry presenta todas las dependencias de Prez (otros paquetes de Python) en el archivo pyproject.toml
ubicado en el directorio raíz del proyecto.
Para instalar las dependencias de Python ejecute:
poetry install
Nota: Poetry debe estar instalado en el sistema. Para comprobar si tiene Poetry instalado, ejecute
poetry --version
. Para obtener consejos sobre cómo instalar y administrar grupos de dependencia específicos, consulte la documentación.
Prez ofrece los siguientes puntos finales:
Punto final | MT predeterminada |
---|---|
/ | texto/otra+tortuga |
/docs | texto/html |
/catalogs/{catalogId} | texto/otra+tortuga |
/catalogs/{catalogId}/colecciones | texto/otra+tortuga |
/catalogs/{catalogId}/collections/{recordsCollectionId} | texto/otra+tortuga |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items | texto/otra+tortuga |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items/{itemId} | texto/otra+tortuga |
/purgar-tbox-cache | aplicación/json |
/tbox-cache | aplicación/json |
/salud | aplicación/json |
/prefijos | texto/otra+tortuga |
/concepto-jerarquía/{parent_curie}/narrowers | texto/otra+tortuga |
/concepto-jerarquía/{parent_curie}/top-conceptos | texto/otra+tortuga |
/cql | texto/otra+tortuga |
/perfiles | texto/otra+tortuga |
/buscar | texto/otra+tortuga |
/perfiles/{profile_curie} | texto/otra+tortuga |
/objeto | texto/otra+tortuga |
/identificador/redireccionamiento | N / A |
/identificador/curie/{iri} | texto/sin formato |
/identificador/iri/{curie} | texto/plai |
Los puntos finales de la API de características de OGC se basan en la RAÍZ /catalogs/{catalogId}/collections/{recordsCollectionId}/
Punto final | MT predeterminada |
---|---|
{ROOT}/características | aplicación/json |
{ROOT}/características/docs | texto/html |
{ROOT}/características/conformidad | aplicación/json |
{ROOT}/características/colecciones | aplicación/json |
{ROOT}/características/colecciones/{collectionId} | aplicación/json |
{ROOT}/características/colecciones/{collectionId}/items | aplicación/geo+json |
{ROOT}/características/colecciones/{collectionId}/items/{featureId} | aplicación/geo+jso |
Las siguientes variables de entorno se pueden utilizar para configurar Prez: En la mayoría de los casos, todo lo que se requiere es la variable SPARQL_ENDPOINT.
Estos se pueden configurar en un archivo '.env' que se leerá a través de python-dotenv. Alternativamente, configúrelos directamente en el entorno desde el cual se ejecuta Prez.
sparql_endpoint
: punto final SPARQL de solo lectura para Prez. El valor predeterminado es None
.sparql_username
: un nombre de usuario para el punto final Prez SPARQL, si lo requiere la base de datos RDF. El valor predeterminado es None
.sparql_password
: una contraseña para el punto final Prez SPARQL, si lo requiere la base de datos RDF. El valor predeterminado es None
.enable_sparql_endpoint
: si se debe habilitar el punto final SPARQL. Es decir, si prez expone el punto final SPARQL del repositorio remoto (normalmente un triplestore). El valor predeterminado es False
. NB: el punto final SPARQL, cuando está habilitado, admite solicitudes POST. Prez en sí no realiza ninguna actualización en el repositorio remoto (por ejemplo, el Triplestore remoto); sin embargo, si el punto final SPARQL remoto está habilitado, es posible que los usuarios puedan realizar actualizaciones en el repositorio remoto utilizando el punto final SPARQL. protocol
: El protocolo utilizado para entregar a Prez. El valor predeterminado es "http"
.host
: nombre de dominio del host de Prez. El valor predeterminado es "localhost"
.port
: El puerto en el que se puede acceder a Prez. El valor predeterminado es 8000
. system_uri
: un IRI para el sistema Prez en su conjunto. Este valor aparece en la página de destino RDF entregada por Prez ( "/"
). El valor predeterminado es f"{protocol}://{host}:{port}"
. log_level
: nivel de registro. El valor predeterminado es "INFO"
.log_output
: destino de salida del registro. El valor predeterminado es "stdout"
. prez_title
: Título de la instancia de Prez. El valor predeterminado es "Prez"
.prez_desc
: Descripción de la instancia de Prez. El valor predeterminado es una descripción de la API del marco web de Prez.prez_version
: versión de la instancia de Prez. El valor predeterminado es None
. curie_separator
: Separador utilizado en CURIE. El valor predeterminado es ":"
. Este separador aparece en los enlaces generados por Prez y, a su vez, en las rutas URL. order_lists_by_label
: si se deben ordenar las listas por etiqueta. El valor predeterminado es True
. Se utiliza para mostrar RDF con etiquetas legibles por humanos.
label_predicates
: Lista de predicados utilizados para las etiquetas. El valor predeterminado incluye:skos:prefLabel
dcterms:title
rdfs:label
sdo:name
Cuando se utiliza un tipo de medio anotado (
+anot
), Prez incluye triples para cada URI en la respuesta inicial que tiene una de las propiedades anteriores. Estas tripletas de anotaciones luego se almacenan en caché. Las anotaciones se utilizan con fines de visualización, por ejemplo, páginas HTML.
Similar a los predicados de etiqueta anteriores.
description_predicates
: Lista de predicados utilizados para las descripciones. El valor predeterminado incluye:skos:definition
dcterms:description
sdo:description
Similar a los predicados de procedencia anteriores.
provenance_predicates
: Lista de predicados utilizados para la procedencia. El valor predeterminado incluye:dcterms:provenance
El mecanismo de anotación se puede utilizar además para devolver en general ciertas propiedades siempre que estén presentes.
other_predicates
: Lista de otros predicados. El valor predeterminado incluye:sdo:color
reg:status
skos:narrower
skos:broader
sparql_repo_type
: tipo de repositorio SPARQL. El valor predeterminado es "remote"
. Las opciones son "remote"
, "pyoxigraph"
y "oxrdflib"
sparql_timeout
: tiempo de espera para consultas SPARQL. El valor predeterminado es 30
. prez_contact
: información de contacto de Prez. El valor predeterminado es None
. disable_prefix_generation
: si se debe deshabilitar la generación de prefijos. Se recomienda deshabilitar la generación de prefijos para repositorios de datos grandes ; además, se recomienda especificar siempre prefijos en el directorio prez/reference_data/prefixes/
. El valor predeterminado es False
. default_language
: idioma predeterminado para Prez. El valor predeterminado es "en"
.default_search_predicates
: predicados de búsqueda predeterminados. El valor predeterminado incluye:rdfs:label
skos:prefLabel
sdo:name
dcterms:title
Se utiliza junto con el repositorio de Pyoxigraph. Especifica un directorio (desde la raíz del repositorio) para cargar en el gráfico de datos de Pyoxigraph en la memoria. No se utiliza para otros tipos de repositorio.
local_rdf_dir
: directorio para archivos RDF locales. El valor predeterminado es "rdf"
. endpoint_structure
: estructura predeterminada de los puntos finales, utilizada para generar enlaces. El valor predeterminado es ("catalogs", "collections", "items")
. system_endpoints
: Lista de puntos finales del sistema. El valor predeterminado incluye:ep:system/profile-listing
ep:system/profile-object
listing_count_limit
: el número máximo de elementos a contar para un punto final de listado. Los recuentos superiores a este límite se devolverán como ">N", donde N es el límite. El valor predeterminado es 100
.search_count_limit
: el número máximo de elementos que se devolverán en un resultado de búsqueda. El valor predeterminado es 10
. temporal_predicate
: el predicado utilizado para las propiedades temporales. El valor predeterminado es sdo:temporal
. endpoint_to_template_query_filename
: un diccionario que asigna puntos finales para consultar nombres de archivos de plantillas. El valor predeterminado es un diccionario vacío. Esta sección es para desarrollar Prez localmente. Consulte las opciones de ejecución a continuación para ejecutar Prez en producción.
Para ejecutar el servidor de desarrollo (con recarga automática al cambiar el código):
poetry run python main.py
Las imágenes del contenedor Prez se crean utilizando una acción Github y están disponibles aquí.
El Dockerfile en el repositorio también se puede utilizar para crear una imagen de Docker.
El nombre de la imagen es ghcr.io/rdflib/prez
.
La latest
etiqueta apunta a la última versión estable de Prez. Todas las últimas versiones estables tienen una etiqueta principal, mayor y menor, y una etiqueta mayor, menor y de parche que apunta a ellas.
Por ejemplo, para una versión con una etiqueta git de 3.2.4, las siguientes etiquetas estarán en la imagen del contenedor:
3
3.2
3.2.4
latest
Las nuevas confirmaciones en la rama main
crean una imagen de desarrollo continua con la etiqueta dev
. Las compilaciones de desarrollo también incluirán una etiqueta con el formato major.minor.{patch+1}-dev.{commits-since-last-release}.{short-commit-sha}. Esto se ajusta al control de versiones semántico y los sistemas de orquestación lo reconocerán para realizar versiones automáticas.
Por ejemplo, si la última versión es 3.2.4 y ha habido 7 nuevas confirmaciones desde la publicación y el SHA de confirmación corta es fc82562, entonces la etiqueta de imagen del contenedor será:
3.2.5-dev.7.fc82562
Para ejecutar la imagen de la ventana acoplable extraída:
docker run -p 8000:8000
-e SPARQL_ENDPOINT=<your_sparql_endpoint>
<your_image_id>
El comando anterior inicia un contenedor Docker que ejecuta Prez en el puerto 8000, conectado al punto final sparql especificado.
Prez utiliza PyTest y Coverage para pruebas e informes de cobertura de pruebas.
Para ejecutar todas las pruebas disponibles:
poetry run pytest tests
Para ejecutar todas las pruebas disponibles para el análisis de cobertura:
poetry run coverage run -m pytest tests
Para generar un informe de cobertura:
poetry run coverage report
Como servidor de datos vinculados, Prez proporciona un servicio de redireccionamiento en /identifier/redirect
que acepta un parámetro de consulta iri
, busca el iri
en la base de datos para un predicado foaf:homepage
con un valor y, si existe, devuelve una respuesta de redireccionamiento a el valor.
Esta funcionalidad es útil para instituciones que emiten sus propios identificadores persistentes bajo un nombre de dominio que controlan. La asignación del identificador persistente al recurso web de destino se almacena en el almacén SPARQL del backend.
Esta es una solución alternativa a los servicios de identificadores persistentes como w3id.org. En algunos casos, se puede utilizar junto con dichos servicios de identificadores persistentes para evitar la necesidad de proporcionar la asignación de redireccionamiento en la configuración del servidor web (NGINX, Apache HTTP, etc.) y, en su lugar, definir la configuración como datos RDF.
Para que Prez entregue datos a través de sus diversos subsistemas, los datos deben cumplir con algunos requisitos mínimos: ¡no puede, por ejemplo, ejecutar VocPrez sin ningún SKOS ConceptSchemes definido!
Todos los perfiles enumerados anteriormente proporcionan validadores que se pueden usar con datos RDF para probar y ver si son válidos. Si es así, a Pérez le parecerá bien.
Todos los validadores de perfiles están disponibles en los perfiles mismos (navegue a las listas de otros recursos de perfiles a través de los enlaces de especificaciones anteriores) y también se cargan en la herramienta en línea RDFTools que puede usar sin descargar ni instalar nada:
Busque los validadores VocPrez Compounded y similares. El bit 'compuesto' significa que el validador validará los datos con todos los requisitos heredados y de VocPrez.
NOTA : Esta herramienta de código abierto está desarrollada y respaldada activamente por KurrawongAI, una pequeña empresa australiana de Knowledge Graph, desarrolladores de la Universidad de Melbourne y también por contribuyentes de código abierto.
Para marcar problemas o plantear preguntas, cree problemas en el Rastreador de problemas o puede comunicarse con los desarrolladores utilizando sus detalles a continuación.
Estos son los desarrolladores principales:
KurrawongAI https://kurrawong.net
David Habgood [email protected]
Nicholas Car [email protected]
Edmond Chuc [email protected]
Universidad de Melbourne - Prez UI principalmente Jamie Feiss [email protected]
Nos encantan las contribuciones a esta herramienta y lo alentamos a crear problemas en el rastreador de problemas de este repositorio o a enviar solicitudes de extracción.
Hay documentación sobre cómo contribuir a Prez, consulte README-Dev.md.
Esta versión de Prez y el contenido de este repositorio también están disponibles bajo la licencia BSD-3-Clause. Consulte el archivo de LICENCIA de este repositorio para obtener más detalles.