Skip to content

Helio Publisher

Andrea Cimmino Arriaga edited this page Oct 19, 2020 · 10 revisions

Helio publisher enables a Linked Data service providing a Web layer for interacting with the Helio integrator API. In other words, the publisher provides a REST API, and a set of HTML views, for reading the RDF of a resource, the whole RDF produced underneath, and enables a SPARQL endpoint. Additionally, although Helio already provides the HTML views, a user can manage the existing views and define new views. The views created by the user can have RDF embedded, and thus, publish RDFa documents.

Download the latest Helio Publisher, the jar supports any of the following arguments:

  • --server.port= (mandatory): specifies in which port Helio will run the service.
  • --mappings= (optional): specifies the directory where the mapping files are located. The mapping files must be express in any supported format, additionally, different supported formats can be used at the same time to feed Helio. Currently, three mapping languages are supported the Helio mapping, RML, or Wot-Mappings. If this parameter is not specified Helio will not provide any RDF, therefore, unless the repository of Helio is an existing triple store no data will be handled
  • --config= (optional): specifies a file in which advanced configuration parameters can be found.

Notice that the arguments mappings and config are explained in detailed in the Helio for users section Helio Materialiser.

In order to run the Helio publisher, the following command can be ran:

java -jar publisher-X.X.X.jar --server.port=8080 --mappings=./helio-mappings

The previous command will start a web service on the port 8080, that will publish as Linked Data the data integrated from the data sources specified in the mapping allocated in the helio-mappings directory. Notice that the X.X.X must be replaced with the correct version of Helio which is the one in the name of the downloaded jar.

Compatibility with other languages: Helio counts with different Mappings parsers, and extensions mechanisms to include new mappings. Currently, Helio supports its own mappings, RML, and Wot-Mappings. As a result, any of those mappings can be provided to Helio.

Once the publisher is running, the RDF data of Helio can be consumed at three levels sparql endpoint, dataset, and resource. HTTP or HTTPs requests are supported, although HTTPs is not implemented by Helio and should be implemented with a proxy that bridges the HTTPs requests for Helio.

Sparql

Under the path '/sparql' Helio enables a SPARQL 1.1 endpoint, requests using the GET of POST method can be sent as described in the standard using the defined content negotiation. Alternatively, accessing the same address through the browser leads to a SPARQL interface that Helio offers for users. As a result, a REST API and a graphical interface are enabled by Helio to consume the data using a SPARQL endpoint.

Dataset

Under the path '/dataset' Helio allows to download a file containing all the generated RDF, content negotiation using RDF mime types can be used to change the format of the generated RDF. Alternatively, accessing the same address through the browser leads to a graphical interface that Helio offers for users that allows to download the generated RDF in different formats. As a result, a REST API and a graphical interface are enabled by Helio to download the whole dataset.

Resource

Assuming that the Helio publisher is running on the hostname https://astrea.helio.linkeddata.es, and an excerpt of the generated RDF is the following:

<http://astrea.helio.linkeddata.es/11370606242>
        a       <https://w3id.org/def/astrea#OWLPattern> , <https://w3id.org/def/astrea#Pattern> ;
        <https://w3id.org/def/astrea#involves>
                <http://astrea.helio.linkeddata.es/owl:DatatypeProperty> , <http://astrea.helio.linkeddata.es/rdfs:range> , <http://astrea.helio.linkeddata.es/xsd:string> ;
        <https://w3id.org/def/astrea#isTranslatedBy>
                <http://astrea.helio.linkeddata.es/11770365142> ;
        <https://w3id.org/def/astrea#statement>
                "?property a owl:DatatypeProperty  ;\n    rdfs:range xsd:string .\nOPTIONAL { \n    ?property owl:withRestrictions ?restrictionsList .\n    ?restrictionsList rdf:rest*/rdf:first ?restrictionElement .\n    FILTER NOT EXISTS { ?restrictionElement xsd:pattern ?restrictionPattern . }\n}"^^<http://www.w3.org/2001/XMLSchema#string> .

Then, when a request http://astrea.helio.linkeddata.es/11370606242 is received by Helio the related RDF is output (the one presented above). The request can be done with different mime types that will modify the output format. Alternatively, accessing the same address through the browser leads to a graphical interface that Helio offers for users that allows to download, filter, or just consume the RDF. As a result, a REST API and a graphical interface are enabled by Helio to consume the resource RDF data.

Notice that Helio publisher the resources that have the same domain in their URIs of the one where Helio is running. In other words, in the previous example only resources allocated in the domain astrea.helio.linkeddata.es will be published

Custom pages (documentation coming soon)

Although Helio offers a set of already built-in HTML views a user can define a custom page, and configure Helio to use that HTML for publishing the existing resources. Alternatively, a custom page can be used to publish a view of the existing data.

Publishing distributed data (documentation coming soon)