SPARQL-MM is a multimedia-extension for SPARQL 1.1 implemented for Sesame. By now it supports relation, aggregation and accessor functions for Media Fragments URI 1.0 - and features are constantly extended. It is still an unofficial extension for Apache Marmotta, currently developed at GitHub.
SPARQL-MM can easily appended to any Sesame Triplestore via Java Class Loader Technology. The package is available on Maven Central.
<dependency> <groupId>com.github.tkurz</groupId> <artifactId>sparql-mm</artifactId> <version>1.0</version> </dependency>
Here we just show a few functions that are supported. Get more examples within the tests. All list of all supported functions can be found here.
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX mm: <http://linkedmultimedia.org/sparql-mm/ns/1.0.0/function#> SELECT ?t1 ?t2 WHERE { ?f1 rdfs:label ?t1. ?f2 rdfs:label ?t2. FILTER mm:precedes(?f1,?f2) } ORDER BY ?t1 ?t2
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX mm: <http://linkedmultimedia.org/sparql-mm/ns/1.0.0/function#> SELECT ?f1 ?f2 (mm:temporalIntermediate(?f1,?f2) AS ?box) WHERE { ?f1 rdfs:label "a". ?f2 rdfs:label "b". }
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX mm: <http://linkedmultimedia.org/sparql-mm/ns/1.0.0/function#> SELECT ?t1 ?t2 WHERE { ?f1 rdfs:label ?t1. ?f2 rdfs:label ?t2. FILTER mm:rightBeside(?f1,?f2) } ORDER BY ?t1 ?t2
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX mm: <http://linkedmultimedia.org/sparql-mm/ns/1.0.0/function#> SELECT ?f1 ?f2 (mm:spatialIntersection(?f1,?f2) AS ?box) WHERE { ?f1 rdfs:label "a". ?f2 rdfs:label "b". }
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX mm: <http://linkedmultimedia.org/sparql-mm/ns/1.0.0/function#> SELECT ?f1 ?f2 (mm:boundingBox(?f1,?f2) AS ?box) WHERE { ?f1 rdfs:label "a". ?f2 rdfs:label "b". }
PREFIX ma: <http://www.w3.org/ns/ma-ont#> PREFIX mm: <http://linkedmultimedia.org/sparql-mm/ns/1.0.0/function#> SELECT ?f1 WHERE { ?f1 a ma:MediaFragment. } ORDER BY mm:duration(?f1)