Using Jena to convert RDF/OWL file formats Mark Wallace

Using Jena to convert RDF/OWL file formats

This article copyed from Mark Wallace blog 

As a way of getting started with this blog, let me show how to use the Jena Utilities to convert your RDF/OWL files from one format to another.

On the Web, most OWL and RDF content are formatted as as RDF/XML. This format works great for the web, and most OWL/RDF tools support this as the native format. However, it is less human-readable than other formats such as Turtle.

For me, Turtle is the easiest form to read, and the quickest format for generating test data when I am prototyping. But not all tools support Turtle format.

But that's OK! If you want to easily convert from RDF/XML to Turtle and back, you can use the freely available Jena utilities to do this. These are command line utilities, so you run them from a command window.

First: Download Jena. The latest version at the time of this writing is version 2.6.2. Unpack it anywhere - though I usually make sure the directory path has no spaces in it. E.g., let's say you unpack it on a Windows system under C:\Programs, making the Jena top level folder the C:\Programs\Jena-2.6.2 folder.

Second: Set up your Java classpath, e.g.:

set CLASSPATH=
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\arq-extra.jar
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\arq.jar
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\icu4j_3_4.jar
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\iri.jar
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\jena.jar
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\jenatest.jar
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\json.jar
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\junit-4.5.jar
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\log4j-1.2.12.jar
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\lucene-core-2.3.1.jar
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\slf4j-api-1.5.6.jar
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\slf4j-log4j12-1.5.6.jar
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\stax-api-1.0.jar
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\wstx-asl-3.0.0.jar
set CLASSPATH=%CLASSPATH%;C:\Programs\Jena-2.6.2\lib\xercesImpl.jar


Third: Convert stuff! E.g. I have the file vehicle.owl, with these contents:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:e="http://example.org/ex#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
  <rdfs:Class rdf:about="http://example.org/ex#Vehicle"/>
  <e:Civic rdf:about="http://example.org/ex#Civic_8717383">
    <e:hasVin>1H0243098430987</e:hasVin>
  </e:Civic>
  <rdfs:Property rdf:about="http://example.org/ex#hasVin"/>
  <rdf:Description rdf:about="http://example.org/ex#HondaCar">
    <rdfs:subClassOf>
      <rdf:Description rdf:about="http://example.org/ex#Car">
        <rdfs:subClassOf rdf:resource="http://example.org/ex#Vehicle"/>
      </rdf:Description>
    </rdfs:subClassOf>
  </rdf:Description>
  <rdf:Description rdf:about="http://example.org/ex#Civic">
    <rdfs:subClassOf rdf:resource="http://example.org/ex#HondaCar"/>
  </rdf:Description>
</rdf:RDF>


To convert it, I use the Jena rdfcat program, as follows:
java jena.rdfcat -out ttl vehicle.owl


And it prints this this out:
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix e:       <http://example.org/ex#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

e:Civic_8717383
     a       e:Civic ;
     e:hasVin "1H0243098430987" .

e:Vehicle
     a       rdfs:Class .

e:HondaCar
     rdfs:subClassOf e:Car .

e:hasVin
     a       rdfs:Property .

e:Car
     rdfs:subClassOf e:Vehicle .

e:Civic
     rdfs:subClassOf e:HondaCar .


I can redirect this to a file for safe keeping:
java jena.rdfcat -out ttl vehicle.owl > vehicle.ttl


Now I have my turtle file! I can view and edit it as I see fit. Then, if I need to publish back to RDF/XML format, I simply use the rdfcat utility again, but with no "-out" option:
java jena.rdfcat vehicle.ttl > vehicle-new.owl

Share on Google Plus

About Ali Saidi

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment

0 Comments :

Enregistrer un commentaire

About Me

authorHello, my name is Ali Saidi. I'm a 30 years old self-employed.
Learn More →