summaryrefslogtreecommitdiff
path: root/schema/validate-jena/ValidateTool.java
blob: 274cf6326479726fccfb59fb907fc16642eafcb6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* Tool to validate Baserock definitions data against the OWL schema.
 *
 * Based in part on:
 *
 *    https://github.com/castagna/jena-examples/blob/master/src/main/java/org/apache/jena/examples/ExampleONT_02.java
 */


import java.util.Iterator;

import com.hp.hpl.jena.rdf.model.InfModel;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.reasoner.Reasoner;
import com.hp.hpl.jena.reasoner.ReasonerRegistry;
import com.hp.hpl.jena.reasoner.ValidityReport;
import com.hp.hpl.jena.util.FileManager;


public class ValidateTool {
    public static void main(String[] args) {
        Model data = FileManager.get().loadModel(
                "../definitions.rdfxml", null, "RDF/XML");
        Model schema = FileManager.get().loadModel(
                "../baserock-example.schema", null, "Turtle");

        Reasoner reasoner = ReasonerRegistry.getOWLReasoner();
        reasoner = reasoner.bindSchema(schema.getGraph());

        InfModel infmodel = ModelFactory.createInfModel(reasoner, data);

        ValidityReport validity = infmodel.validate();

        if (validity.isValid()) {
            System.out.println("OK");
        } else {
            System.out.println("Conflicts");
            for (Iterator i = validity.getReports(); i.hasNext(); ) {
                System.out.println(" - " + i.next());
            }
        }
    }
}