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.
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)
http://localhost:3030/
(by default)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.
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> ] ;
] ;
.