20

I am a beginner with Semantic Web technologies, My question might be a very basic one but I am really stuck figuring it out. I have a RDF file I created from an XML and have validated it using w3.org RDF VALIDATOR. My question is how can I run queries on my RDF document using SPARQL. The online resource http://demo.openlinksw.com/sparql does not work and I have no Idea what or how to find information about this.

Yaba
  • 284
  • 3
  • 15

2 Answers2

19

You could set up your own local SPARQL endpoint using Fuseki. Fuseki is part of the Apache Jena Project but can be downloaded as a standalone application (at the link above).

With Fuseki you can (amongst other stuff)

  1. load a local RDF dataset
  2. use that dataset to
    • expose this data as a SPARQL endpoint via http://localhost:3030/ (by default)
    • use a web based query form at http://localhost:3030/sparql.html

That means you can use Fuseki to either simply query your dataset using the web based form or to query your dataset using any application that queries SPARQL endpoints over http.

Personally, I am currently developing an application that analyses datasets via SPARQL endpoints. I use Fuseki to set up a local SPARQL endpoint with example data that I can run and test my application against.


How?

Fuseki's basic functionality is rather easy to use. The line below will start the server (SPARQL endpoint).

java -jar fuseki-server.jar --config=yourConfig.ttl

The file yourConfig.ttl is a RDF file (in turtle serialization format). To set up a basic server that loads your RDF file to memory just write (replacing at least the path to your dataset file):

# Attention: I have omitted the @prefix declarations

[] rdf:type fuseki:Server ;
   fuseki:services (
 <#yourService>
) .

<#yourService> rdf:type fuseki:Service ;
fuseki:name                     "yourService" ;
fuseki:serviceQuery             "query" ;
fuseki:serviceReadGraphStore    "get" ;
fuseki:dataset                   <#yourDataset> ;
.

<#yourDataset>    rdf:type ja:RDFDataset ;
rdfs:label "a label for your dataset" ;
ja:defaultGraph 
  [ rdfs:label "yourDataset.rdf" ;
    a ja:MemoryModel ;
    ja:content [ja:externalContent <file:Path/To/yourDataset.rdf> ] ;
  ] ;
.

Pablo Bianchi
  • 1,039
  • 1
  • 15
  • 23
Thomas
  • 1,460
  • 12
  • 20
  • 1
    This answer did not entirelly resolve the issue. Accessing http://localhost:3030/ gives back a 404 error – biogeek Jun 01 '13 at 23:31
  • What if the data size in huge? Running fuseki is fairly easy and straightforward. However, loading huge data to fuseki server is always a pain and I am stuck on that part. – Pedram Nov 09 '17 at 18:01
  • @Pedram Sorry, I have no experience with large amounts of data. – Thomas Nov 22 '17 at 15:27
4

There are several tools you can use to do this. Of course, there are the RDF frameworks like Apache Jena or OpenRDF Sesame (Java), or dotNetRdf (.Net), to name just three. Most if not all offer installation and getting started instructions. These are powerful solutions that you will definitely need if you go further with SW technologies and need to build your own code on top of RDF data sources.

But for trying out some simple queries, it's perhaps easier to try something like the Sesame Windows Client (SWC) tool. This is a simple graphical Windows desktop application that you can use to create a repository, load data in it, and then do SPARQL queries, without any programming or advanced configuration (disclaimer: I wrote this tool).

Jeen Broekstra
  • 20,156
  • 4
  • 43
  • 67