All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fr.inria.edelweiss.kgtool.Start Maven / Gradle / Ivy

Go to download

Corese is a Semantic Web Factory (triple store and SPARQL endpoint) implementing RDF, RDFS, SPARQL 1.1 Query and Update.

The newest version!
package fr.inria.edelweiss.kgtool;

import java.util.Date;
import java.util.ArrayList;

import fr.inria.acacia.corese.exceptions.EngineException;
import fr.inria.acacia.corese.triple.parser.NSManager;
import fr.inria.edelweiss.kgram.core.Mappings;
import fr.inria.edelweiss.kgraph.core.Graph;
import fr.inria.edelweiss.kgraph.query.QueryProcess;
import fr.inria.edelweiss.kgraph.rule.RuleEngine;
import fr.inria.edelweiss.kgtool.load.Load;
import fr.inria.edelweiss.kgtool.load.LoadException;
import fr.inria.edelweiss.kgtool.print.ResultFormat;
import fr.inria.edelweiss.kgtool.transform.Transformer;

public class Start {

    ArrayList load = new ArrayList();
    ArrayList query = new ArrayList();
    ArrayList sttl = new ArrayList();
    NSManager nsm = NSManager.create();
    boolean debugRule = false;
    boolean rdfs = false;
    boolean owl = false;

    /**
     * Corese as command line take path and query as argument load the docs from
     * path java -cp corese.jar fr.inria.edelweiss.kgtool.Start -load
     * dataset.rdf -query "select * where {?x ?p ?y}" java -cp
     * kggui-3.2.1-SNAPSHOT-jar-with-dependencies.jar
     * fr.inria.edelweiss.kgtool.Start -load rdf: -sttl st:turtle st:rdfxml
     * st:json
     *
     */
    public static void main(String[] args) {
        Start st = new Start();
        st.process(args);
        st.start();
    }

    void process(String[] args) {
        int i = 0;
        while (i < args.length) {
            if (args[i].equals("-rdfs")) {
                i++;
                while (i < args.length && !args[i].startsWith("-")) {
                    if (args[i++].equals("true")){
                        rdfs = true;
                    }
                }
            } 
            else if (args[i].equals("-owl")) {
                i++;
                while (i < args.length && !args[i].startsWith("-")) {
                    if (args[i++].equals("true")){
                        owl = true;
                    }
                }
            } 
            else if (args[i].equals("-load")) {
                i++;
                while (i < args.length && !args[i].startsWith("-")) {
                    load.add(expand(args[i++]));
                }
            } else if (args[i].equals("-query")) {
                i++;
                while (i < args.length && !args[i].startsWith("-")) {
                    query.add(args[i++]);
                }
            } else if (args[i].equals("-sttl")) {
                i++;
                while (i < args.length && !args[i].startsWith("-")) {
                    sttl.add(expand(args[i++]));
                }
            } 
        }
    }

    String expand(String str) {
        return nsm.toNamespaceBN(str);
    }

    void start() {
        Date d1 = new Date();
        Graph g = Graph.create(rdfs);
        Load ld = Load.create(g);
        for (String doc : load) {
            try {
                ld.parseDir(doc);
            } catch (LoadException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
        if (owl){
            RuleEngine re = RuleEngine.create(g);
            re.setProfile(RuleEngine.OWL_RL);
            re.process();
        }

        Date d2 = new Date();
        try {
            QueryProcess exec = QueryProcess.create(g);
            for (String q : query) {
                Mappings map = exec.query(q);
                ResultFormat f = ResultFormat.create(map);
                System.out.println(f);
            }
        } catch (EngineException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        for (String stl : sttl) {
            Transformer t = Transformer.create(g, stl);
            System.out.println(t.transform());
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy