Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tree: 570cd0b581
Fetching contributors…

Cannot retrieve contributors at this time

154 lines (137 sloc) 9.08 kB

Mediation toolkit

It's a lightweight toolkit to implement ontological mediation over RDF. It uses ontology mappings in order to rewrite SPARQL SELECT queries and to generate SPARQL CONSTRUCT queries to import an external data set.

API

The tool is divided in the following packages:

The ontology alignments are represented as RDF files and describe rewriting rules that allows to define class mappings:

[]    <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
          <http://ecs.soton.ac.uk/om.owl#Alignment> ;
  <http://ecs.soton.ac.uk/om.owl#hasEntityAlignment>
          [ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
                    <http://ecs.soton.ac.uk/om.owl#EntityAlignment> ;
            <http://ecs.soton.ac.uk/om.owl#hasRelation>
                    <http://ecs.soton.ac.uk/om.owl#EQ> ;
            <http://ecs.soton.ac.uk/om.owl#lhs>
                    [ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
                              <http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#object>
                              <http://correndo.ecs.soton.ac.uk/ontology/target#Boiler> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate>
                              <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject>
                              _:b1
                    ] ;
            <http://ecs.soton.ac.uk/om.owl#rhs>
                    [ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
                              <http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#object>
                              <http://correndo.ecs.soton.ac.uk/ontology/source#Kettle> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate>
                              <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject>
                              _:b1
                    ]
          ] ;

...property mappings:

  <http://ecs.soton.ac.uk/om.owl#hasEntityAlignment>
          [ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
                    <http://ecs.soton.ac.uk/om.owl#EntityAlignment> ;
            <http://ecs.soton.ac.uk/om.owl#hasRelation>
                    <http://ecs.soton.ac.uk/om.owl#EQ> ;
            <http://ecs.soton.ac.uk/om.owl#lhs>
                    [ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
                              <http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#object>
                              _:b2 ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate>
                              <http://correndo.ecs.soton.ac.uk/ontology/target#boiler> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject>
                              _:b3
                    ] ;
            <http://ecs.soton.ac.uk/om.owl#rhs>
                    [ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
                              <http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#object>
                              _:b2 ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate>
                              <http://correndo.ecs.soton.ac.uk/ontology/source#hasKettle> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject>
                              _:b3
                    ]
          ] ;

...and data manipulation:

  <http://ecs.soton.ac.uk/om.owl#hasEntityAlignment>
          [ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
                    <http://ecs.soton.ac.uk/om.owl#EntityAlignment> ;
            <http://ecs.soton.ac.uk/om.owl#hasFunctionalDependency>
                    [ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
                              <http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#object>
                              [ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
                                        <http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq> ;
                                <http://www.w3.org/1999/02/22-rdf-syntax-ns#_1>
                                        _:b4 ;
                                <http://www.w3.org/1999/02/22-rdf-syntax-ns#_2>
                                        273.15
                              ] ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate>
                              <http://www.w3.org/2005/xpath-functions/sub> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject>
                              _:b5
                    ] ;
                    <http://ecs.soton.ac.uk/om.owl#hasRelation>
                    <http://ecs.soton.ac.uk/om.owl#EQ> ;
            <http://ecs.soton.ac.uk/om.owl#lhs>
                    [ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
                              <http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#object>
                              _:b4 ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate>
                              <http://correndo.ecs.soton.ac.uk/ontology/target#temp> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject>
                              _:b6
                    ] ;
            <http://ecs.soton.ac.uk/om.owl#rhs>
                    [ <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>
                              <http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#object>
                              _:b5 ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate>
                              <http://correndo.ecs.soton.ac.uk/ontology/source#hasTemperature> ;
                      <http://www.w3.org/1999/02/22-rdf-syntax-ns#subject>
                              _:b6
                    ]
          ] ;

Once loaded an alignment the tool allows to rewrite a SPARQL SELECT query in order to fit a given schema:

[kettle-boiler] original query:

PREFIX  rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX  source: <http://correndo.ecs.soton.ac.uk/ontology/source#>
PREFIX  owl:  <http://www.w3.org/2002/07/owl#>
PREFIX  rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT DISTINCT  ?v ?y ?z ?lt
WHERE
{ ?v rdf:type source:Person .
?v source:hasKettle ?y .
?v source:hasKettle ?l .
?y source:hasTemperature 10 .
?l source:hasTemperature ?lt .
} LIMIT   10

[kettle-boiler] translated query:

SELECT DISTINCT  ?v ?y ?z ?lt
WHERE
{ ?v   <http://www.w3.org/1999/02/22-rdf-syntax-ns#type>  <http://correndo.ecs.soton.ac.uk/ontology/target#User> ;
       <http://correndo.ecs.soton.ac.uk/ontology/target#boiler>  ?y ;
       <http://correndo.ecs.soton.ac.uk/ontology/target#boiler>  ?l ;
?y   <http://correndo.ecs.soton.ac.uk/ontology/target#temp>  283.15 .
?l  <http://correndo.ecs.soton.ac.uk/ontology/target#temp>  ?_12 .
LET (?lt := ( ?_12 - 273.15 ))
} LIMIT   10
Jump to Line
Something went wrong with that request. Please try again.