forked from kevin.shehu/GGD
parent
39251400d7
commit
e357d53584
74
pom.xml
74
pom.xml
|
@ -19,24 +19,10 @@
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
<properties>
|
||||||
|
<runtime.version>7.48.0.Final</runtime.version>
|
||||||
|
</properties>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.jena</groupId>
|
|
||||||
<artifactId>apache-jena-libs</artifactId>
|
|
||||||
<type>pom</type>
|
|
||||||
<version>3.16.0</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.jena</groupId>
|
|
||||||
<artifactId>jena-fuseki-war</artifactId>
|
|
||||||
<type>war</type>
|
|
||||||
<version>3.16.0</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.jena</groupId>
|
|
||||||
<artifactId>jena-fuseki-main</artifactId>
|
|
||||||
<version>3.16.0</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>info.picocli</groupId>
|
<groupId>info.picocli</groupId>
|
||||||
<artifactId>picocli</artifactId>
|
<artifactId>picocli</artifactId>
|
||||||
|
@ -60,7 +46,7 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/org.drools/drools-core -->
|
<!-- https://mvnrepository.com/artifact/org.drools/drools-core-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.drools</groupId>
|
<groupId>org.drools</groupId>
|
||||||
<artifactId>drools-core</artifactId>
|
<artifactId>drools-core</artifactId>
|
||||||
|
@ -78,6 +64,14 @@
|
||||||
<artifactId>drools-decisiontables</artifactId>
|
<artifactId>drools-decisiontables</artifactId>
|
||||||
<version>7.48.0.Final</version>
|
<version>7.48.0.Final</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- https://mvnrepository.com/artifact/org.drools/kiebase-inclusion -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.drools</groupId>
|
||||||
|
<artifactId>kiebase-inclusion</artifactId>
|
||||||
|
<version>7.48.0.Final</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/org.kie/kie-api -->
|
<!-- https://mvnrepository.com/artifact/org.kie/kie-api -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.kie</groupId>
|
<groupId>org.kie</groupId>
|
||||||
|
@ -85,11 +79,55 @@
|
||||||
<version>7.48.0.Final</version>
|
<version>7.48.0.Final</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- https://mvnrepository.com/artifact/org.kie/kie-ci -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.kie</groupId>
|
||||||
|
<artifactId>kie-ci</artifactId>
|
||||||
|
<version>7.48.0.Final</version>
|
||||||
|
</dependency>
|
||||||
|
<!-- <repositories>-->
|
||||||
|
<!-- <repository>-->
|
||||||
|
<!-- <id>jboss-public-repository-group</id>-->
|
||||||
|
<!-- <name>JBoss Public Repository Group</name>-->
|
||||||
|
<!-- <url>http://repository.jboss.org/nexus/content/groups/public/</url>-->
|
||||||
|
<!-- <releases>-->
|
||||||
|
<!-- <enabled>true</enabled>-->
|
||||||
|
<!-- <updatePolicy>never</updatePolicy>-->
|
||||||
|
<!-- </releases>-->
|
||||||
|
<!-- <snapshots>-->
|
||||||
|
<!-- <enabled>true</enabled>-->
|
||||||
|
<!-- <updatePolicy>daily</updatePolicy>-->
|
||||||
|
<!-- </snapshots>-->
|
||||||
|
<!-- </repository>-->
|
||||||
|
<!-- </repositories>-->
|
||||||
|
|
||||||
|
<!-- <dependencies>-->
|
||||||
|
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>org.kie</groupId>-->
|
||||||
|
<!-- <artifactId>kie-api</artifactId>-->
|
||||||
|
<!-- <version>${runtime.version}</version>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>org.drools</groupId>-->
|
||||||
|
<!-- <artifactId>drools-core</artifactId>-->
|
||||||
|
<!-- <version>${runtime.version}</version>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>org.drools</groupId>-->
|
||||||
|
<!-- <artifactId>drools-decisiontables</artifactId>-->
|
||||||
|
<!-- <version>${runtime.version}</version>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
|
||||||
|
<!-- <dependency>-->
|
||||||
|
<!-- <groupId>org.jbpm</groupId>-->
|
||||||
|
<!-- <artifactId>jbpm-test</artifactId>-->
|
||||||
|
<!-- <version>${runtime.version}</version>-->
|
||||||
|
<!-- </dependency>-->
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</project>
|
</project>
|
|
@ -1 +1 @@
|
||||||
OnomznAUvxd8lmIUu7FRiIkfYdoUCGN1x84B4AjS9yE4TW3xLpmh2rOxlBtBD0IJ
|
PlixJiy6sktkQZcj1WJVqLZCR4abCgnNaMlG2DYGZ2ga75aOA00E9jTzBmSC88tw
|
|
@ -1,77 +1,77 @@
|
||||||
package JSON2RDF;
|
//package JSON2RDF;
|
||||||
|
//
|
||||||
import java.io.*;
|
//import java.io.*;
|
||||||
import java.net.URI;
|
//import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
//import java.net.URISyntaxException;
|
||||||
import java.nio.charset.Charset;
|
//import java.nio.charset.Charset;
|
||||||
import java.nio.charset.StandardCharsets;
|
//import java.nio.charset.StandardCharsets;
|
||||||
|
//
|
||||||
|
//
|
||||||
import org.json.simple.JSONArray;
|
//import org.json.simple.JSONArray;
|
||||||
import org.json.simple.parser.JSONParser;
|
//import org.json.simple.parser.JSONParser;
|
||||||
import org.json.simple.parser.ParseException;
|
//import org.json.simple.parser.ParseException;
|
||||||
|
//
|
||||||
import org.apache.jena.riot.system.StreamRDF;
|
//import org.apache.jena.riot.system.StreamRDF;
|
||||||
import org.apache.jena.riot.system.StreamRDFLib;
|
//import org.apache.jena.riot.system.StreamRDFLib;
|
||||||
import picocli.CommandLine;
|
//import picocli.CommandLine;
|
||||||
|
//
|
||||||
@CommandLine.Command(name = "json2rdf")
|
//@CommandLine.Command(name = "json2rdf")
|
||||||
public class JSON2RDF {
|
//public class JSON2RDF {
|
||||||
private final InputStream jsonIn;
|
// private final InputStream jsonIn;
|
||||||
private final OutputStream rdfOut;
|
// private final OutputStream rdfOut;
|
||||||
|
//
|
||||||
|
//
|
||||||
@CommandLine.Parameters(paramLabel = "https://localhost/" , index = "0", description = "Base URI of the RDF output data")
|
// @CommandLine.Parameters(paramLabel = "https://localhost/" , index = "0", description = "Base URI of the RDF output data")
|
||||||
private URI baseURI;
|
// private URI baseURI;
|
||||||
|
//
|
||||||
{
|
// {
|
||||||
try {
|
// try {
|
||||||
baseURI = new URI("https://localhost/");
|
// baseURI = new URI("https://localhost/");
|
||||||
} catch (URISyntaxException e) {
|
// } catch (URISyntaxException e) {
|
||||||
e.printStackTrace();
|
// e.printStackTrace();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// @CommandLine.Parameters(paramLabel = "D:\\WORK\\GGD\\src\\MainExe\\java\\Data", description = "json file")
|
//// @CommandLine.Parameters(paramLabel = "D:\\WORK\\GGD\\src\\MainExe\\java\\Data", description = "json file")
|
||||||
@CommandLine.Option(names = { "--input-charset" }, description = "Input charset (default: ${DEFAULT-VALUE})")
|
// @CommandLine.Option(names = { "--input-charset" }, description = "Input charset (default: ${DEFAULT-VALUE})")
|
||||||
private final Charset inputCharset = StandardCharsets.UTF_8;
|
// private final Charset inputCharset = StandardCharsets.UTF_8;
|
||||||
|
//
|
||||||
@CommandLine.Option(names = { "--output-charset" }, description = "Output charset (default: ${DEFAULT-VALUE})")
|
// @CommandLine.Option(names = { "--output-charset" }, description = "Output charset (default: ${DEFAULT-VALUE})")
|
||||||
private final Charset outputCharset = StandardCharsets.UTF_8;
|
// private final Charset outputCharset = StandardCharsets.UTF_8;
|
||||||
|
//
|
||||||
public static void main(String[] args) throws IOException
|
// public static void main(String[] args) throws IOException
|
||||||
{
|
// {
|
||||||
JSON2RDF json2rdf = new JSON2RDF(System.in, System.out);
|
// JSON2RDF json2rdf = new JSON2RDF(System.in, System.out);
|
||||||
|
//
|
||||||
try
|
// try
|
||||||
{
|
// {
|
||||||
CommandLine.ParseResult parseResult = new CommandLine(json2rdf).parseArgs(args);
|
// CommandLine.ParseResult parseResult = new CommandLine(json2rdf).parseArgs(args);
|
||||||
if (!CommandLine.printHelpIfRequested(parseResult)) json2rdf.convert();
|
// if (!CommandLine.printHelpIfRequested(parseResult)) json2rdf.convert();
|
||||||
}
|
// }
|
||||||
catch (CommandLine.ParameterException ex)
|
// catch (CommandLine.ParameterException ex)
|
||||||
{ // command line arguments could not be parsed
|
// { // command line arguments could not be parsed
|
||||||
System.err.println(ex.getMessage());
|
// System.err.println(ex.getMessage());
|
||||||
ex.getCommandLine().usage(System.err);
|
// ex.getCommandLine().usage(System.err);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public JSON2RDF(InputStream csvIn, OutputStream rdfOut) {
|
// public JSON2RDF(InputStream csvIn, OutputStream rdfOut) {
|
||||||
|
//
|
||||||
|
//
|
||||||
this.jsonIn = csvIn;
|
// this.jsonIn = csvIn;
|
||||||
this.rdfOut = rdfOut;
|
// this.rdfOut = rdfOut;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
public void convert() throws IOException {
|
// public void convert() throws IOException {
|
||||||
if (jsonIn.available() == 0) throw new IllegalStateException("JSON input not provided");
|
// if (jsonIn.available() == 0) throw new IllegalStateException("JSON input not provided");
|
||||||
|
//
|
||||||
try (Reader reader = new BufferedReader(new InputStreamReader(jsonIn, inputCharset)))
|
// try (Reader reader = new BufferedReader(new InputStreamReader(jsonIn, inputCharset)))
|
||||||
{
|
// {
|
||||||
StreamRDF rdfStream = StreamRDFLib.writer(new BufferedWriter(new OutputStreamWriter(rdfOut, outputCharset)));
|
// StreamRDF rdfStream = StreamRDFLib.writer(new BufferedWriter(new OutputStreamWriter(rdfOut, outputCharset)));
|
||||||
new JsonStreamRDFWriter(reader, rdfStream, baseURI.toString()).convert();
|
// new JsonStreamRDFWriter(reader, rdfStream, baseURI.toString()).convert();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
|
|
|
@ -1,124 +1,124 @@
|
||||||
package JSON2RDF;
|
//package JSON2RDF;
|
||||||
|
//
|
||||||
import java.io.InputStream;
|
//import java.io.InputStream;
|
||||||
import java.io.Reader;
|
//import java.io.Reader;
|
||||||
import java.util.ArrayDeque;
|
//import java.util.ArrayDeque;
|
||||||
import java.util.Deque;
|
//import java.util.Deque;
|
||||||
import java.util.HashMap;
|
//import java.util.HashMap;
|
||||||
import java.util.Map;
|
//import java.util.Map;
|
||||||
import javax.json.Json;
|
//import javax.json.Json;
|
||||||
import javax.json.stream.JsonParser;
|
//import javax.json.stream.JsonParser;
|
||||||
import org.apache.jena.datatypes.xsd.XSDDatatype;
|
//import org.apache.jena.datatypes.xsd.XSDDatatype;
|
||||||
import org.apache.jena.graph.Node;
|
//import org.apache.jena.graph.Node;
|
||||||
import org.apache.jena.graph.NodeFactory;
|
//import org.apache.jena.graph.NodeFactory;
|
||||||
import org.apache.jena.graph.Triple;
|
//import org.apache.jena.graph.Triple;
|
||||||
import org.apache.jena.riot.system.IRIResolver;
|
//import org.apache.jena.riot.system.IRIResolver;
|
||||||
import org.apache.jena.riot.system.StreamRDF;
|
//import org.apache.jena.riot.system.StreamRDF;
|
||||||
|
//
|
||||||
|
//
|
||||||
public class JsonStreamRDFWriter
|
//public class JsonStreamRDFWriter
|
||||||
{
|
//{
|
||||||
|
//
|
||||||
private final JsonParser parser;
|
// private final JsonParser parser;
|
||||||
private final StreamRDF rdfStream;
|
// private final StreamRDF rdfStream;
|
||||||
private final IRIResolver iriResolver;
|
// private final IRIResolver iriResolver;
|
||||||
|
//
|
||||||
public JsonStreamRDFWriter(Reader reader, StreamRDF rdfStream, String baseURI)
|
// public JsonStreamRDFWriter(Reader reader, StreamRDF rdfStream, String baseURI)
|
||||||
{
|
// {
|
||||||
this(Json.createParser(reader), rdfStream, baseURI);
|
// this(Json.createParser(reader), rdfStream, baseURI);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public JsonStreamRDFWriter(InputStream is, StreamRDF rdfStream, String baseURI)
|
// public JsonStreamRDFWriter(InputStream is, StreamRDF rdfStream, String baseURI)
|
||||||
{
|
// {
|
||||||
this(Json.createParser(is), rdfStream, baseURI);
|
// this(Json.createParser(is), rdfStream, baseURI);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public JsonStreamRDFWriter(JsonParser parser, StreamRDF rdfStream, String baseURI)
|
// public JsonStreamRDFWriter(JsonParser parser, StreamRDF rdfStream, String baseURI)
|
||||||
{
|
// {
|
||||||
this.parser = parser;
|
// this.parser = parser;
|
||||||
this.rdfStream = rdfStream;
|
// this.rdfStream = rdfStream;
|
||||||
this.iriResolver = IRIResolver.create(baseURI);
|
// this.iriResolver = IRIResolver.create(baseURI);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void convert()
|
// public void convert()
|
||||||
{
|
// {
|
||||||
getStreamRDF().start();
|
// getStreamRDF().start();
|
||||||
|
//
|
||||||
write(getParser(), getStreamRDF(), getIRIResolver());
|
// write(getParser(), getStreamRDF(), getIRIResolver());
|
||||||
|
//
|
||||||
getStreamRDF().finish();
|
// getStreamRDF().finish();
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public static void write(JsonParser parser, StreamRDF rdfStream, IRIResolver iriResolver)
|
// public static void write(JsonParser parser, StreamRDF rdfStream, IRIResolver iriResolver)
|
||||||
{
|
// {
|
||||||
Deque<Node> subjectStack = new ArrayDeque<>();
|
// Deque<Node> subjectStack = new ArrayDeque<>();
|
||||||
Map<Node, Node> arrayProperties = new HashMap<>();
|
// Map<Node, Node> arrayProperties = new HashMap<>();
|
||||||
|
//
|
||||||
Node property = null;
|
// Node property = null;
|
||||||
while (parser.hasNext())
|
// while (parser.hasNext())
|
||||||
{
|
// {
|
||||||
JsonParser.Event event = parser.next();
|
// JsonParser.Event event = parser.next();
|
||||||
|
//
|
||||||
switch (event)
|
// switch (event)
|
||||||
{
|
// {
|
||||||
case START_ARRAY:
|
// case START_ARRAY:
|
||||||
if (!subjectStack.isEmpty() && property != null) arrayProperties.put(subjectStack.getLast(), property);
|
// if (!subjectStack.isEmpty() && property != null) arrayProperties.put(subjectStack.getLast(), property);
|
||||||
break;
|
// break;
|
||||||
case END_ARRAY:
|
// case END_ARRAY:
|
||||||
if (!subjectStack.isEmpty()) arrayProperties.remove(subjectStack.getLast());
|
// if (!subjectStack.isEmpty()) arrayProperties.remove(subjectStack.getLast());
|
||||||
break;
|
// break;
|
||||||
case START_OBJECT:
|
// case START_OBJECT:
|
||||||
Node subject = NodeFactory.createBlankNode();
|
// Node subject = NodeFactory.createBlankNode();
|
||||||
// add triple with current array property, if any
|
// // add triple with current array property, if any
|
||||||
if (property != null && !subjectStack.isEmpty()) rdfStream.triple(new Triple(subjectStack.getLast(), property, subject));
|
// if (property != null && !subjectStack.isEmpty()) rdfStream.triple(new Triple(subjectStack.getLast(), property, subject));
|
||||||
subjectStack.addLast(subject);
|
// subjectStack.addLast(subject);
|
||||||
break;
|
// break;
|
||||||
case END_OBJECT:
|
// case END_OBJECT:
|
||||||
subjectStack.removeLast();
|
// subjectStack.removeLast();
|
||||||
// restore previous array property, if there was any
|
// // restore previous array property, if there was any
|
||||||
if (!subjectStack.isEmpty() && arrayProperties.containsKey(subjectStack.getLast())) property = arrayProperties.get(subjectStack.getLast());
|
// if (!subjectStack.isEmpty() && arrayProperties.containsKey(subjectStack.getLast())) property = arrayProperties.get(subjectStack.getLast());
|
||||||
break;
|
// break;
|
||||||
case VALUE_FALSE:
|
// case VALUE_FALSE:
|
||||||
rdfStream.triple(new Triple(subjectStack.getLast(), property, NodeFactory.createLiteralByValue(Boolean.FALSE, XSDDatatype.XSDboolean)));
|
// rdfStream.triple(new Triple(subjectStack.getLast(), property, NodeFactory.createLiteralByValue(Boolean.FALSE, XSDDatatype.XSDboolean)));
|
||||||
break;
|
// break;
|
||||||
case VALUE_TRUE:
|
// case VALUE_TRUE:
|
||||||
rdfStream.triple(new Triple(subjectStack.getLast(), property, NodeFactory.createLiteralByValue(Boolean.TRUE, XSDDatatype.XSDboolean)));
|
// rdfStream.triple(new Triple(subjectStack.getLast(), property, NodeFactory.createLiteralByValue(Boolean.TRUE, XSDDatatype.XSDboolean)));
|
||||||
break;
|
// break;
|
||||||
case KEY_NAME:
|
// case KEY_NAME:
|
||||||
property = NodeFactory.createURI(iriResolver.resolveToString("#" + parser.getString()));
|
// property = NodeFactory.createURI(iriResolver.resolveToString("#" + parser.getString()));
|
||||||
break;
|
// break;
|
||||||
case VALUE_STRING:
|
// case VALUE_STRING:
|
||||||
if (property != null) rdfStream.triple(new Triple(subjectStack.getLast(), property, NodeFactory.createLiteral(parser.getString())));
|
// if (property != null) rdfStream.triple(new Triple(subjectStack.getLast(), property, NodeFactory.createLiteral(parser.getString())));
|
||||||
break;
|
// break;
|
||||||
case VALUE_NUMBER:
|
// case VALUE_NUMBER:
|
||||||
try
|
// try
|
||||||
{
|
// {
|
||||||
rdfStream.triple(new Triple(subjectStack.getLast(), property,NodeFactory.createLiteralByValue(Integer.valueOf(parser.getString()), XSDDatatype.XSDint)));
|
// rdfStream.triple(new Triple(subjectStack.getLast(), property,NodeFactory.createLiteralByValue(Integer.valueOf(parser.getString()), XSDDatatype.XSDint)));
|
||||||
}
|
// }
|
||||||
catch (NumberFormatException ex)
|
// catch (NumberFormatException ex)
|
||||||
{
|
// {
|
||||||
rdfStream.triple(new Triple(subjectStack.getLast(), property,NodeFactory.createLiteralByValue(Float.valueOf(parser.getString()), XSDDatatype.XSDfloat)));
|
// rdfStream.triple(new Triple(subjectStack.getLast(), property,NodeFactory.createLiteralByValue(Float.valueOf(parser.getString()), XSDDatatype.XSDfloat)));
|
||||||
}
|
// }
|
||||||
break;
|
// break;
|
||||||
case VALUE_NULL:
|
// case VALUE_NULL:
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
protected JsonParser getParser()
|
// protected JsonParser getParser()
|
||||||
{
|
// {
|
||||||
return parser;
|
// return parser;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
protected StreamRDF getStreamRDF()
|
// protected StreamRDF getStreamRDF()
|
||||||
{
|
// {
|
||||||
return rdfStream;
|
// return rdfStream;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
protected IRIResolver getIRIResolver()
|
// protected IRIResolver getIRIResolver()
|
||||||
{
|
// {
|
||||||
return iriResolver;
|
// return iriResolver;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
}
|
//}
|
|
@ -40,7 +40,7 @@ public class ReadSensors4Partner {
|
||||||
|
|
||||||
BoxCall4Partner boxCall4Partner = new BoxCall4Partner();
|
BoxCall4Partner boxCall4Partner = new BoxCall4Partner();
|
||||||
String outputBox = boxCall4Partner.FetchBox(cName,token);
|
String outputBox = boxCall4Partner.FetchBox(cName,token);
|
||||||
String outputBoxFixed=outputBox.replace("[[","[") + outputBox.replace("]]","]"); //
|
String outputBoxFixed=outputBox.replace("[[","[") + outputBox.replace("]]","]"); //to make the
|
||||||
JSONArray jsonArray = new JSONArray(outputBoxFixed);
|
JSONArray jsonArray = new JSONArray(outputBoxFixed);
|
||||||
|
|
||||||
ArrayList<String> list=new ArrayList<String>();
|
ArrayList<String> list=new ArrayList<String>();
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
package Knowledgebase;
|
||||||
|
|
||||||
|
import org.kie.api.KieServices;
|
||||||
|
import org.kie.api.runtime.KieContainer;
|
||||||
|
import org.kie.api.runtime.KieSession;
|
||||||
|
import org.kie.api.runtime.rule.FactHandle;
|
||||||
|
|
||||||
|
public class DroolsTest {
|
||||||
|
|
||||||
|
public static final void main(String[] args) {
|
||||||
|
try {
|
||||||
|
KieServices ks = KieServices.Factory.get();
|
||||||
|
KieContainer kContainer = ks.getKieClasspathContainer();
|
||||||
|
//Get the session named kseesion-rule that we defined in kmodule.xml above.
|
||||||
|
//Also by default the session returned is always stateful.
|
||||||
|
KieSession kSession = kContainer.newKieSession("ksession-rule");
|
||||||
|
|
||||||
|
Product product = new Product();
|
||||||
|
product.setType("gold");
|
||||||
|
|
||||||
|
FactHandle fact1;
|
||||||
|
|
||||||
|
fact1 = kSession.insert(product);
|
||||||
|
kSession.fireAllRules();
|
||||||
|
|
||||||
|
System.out.println("The discount for the jewellery product "
|
||||||
|
+ product.getType() + " is " + product.getDiscount());
|
||||||
|
|
||||||
|
} catch (Throwable t) {
|
||||||
|
t.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
package Knowledgebase;
|
||||||
|
|
||||||
|
public class Plants {
|
||||||
|
private String plantType;
|
||||||
|
private String sensorTag;
|
||||||
|
private double outputValue;
|
||||||
|
|
||||||
|
public String getPlantType() {
|
||||||
|
return plantType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlantType(String plantType) {
|
||||||
|
this.plantType = plantType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSensorTag() {
|
||||||
|
return sensorTag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSensorTag(String sensorTag) {
|
||||||
|
this.sensorTag = sensorTag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getOutputValue() {
|
||||||
|
return outputValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOutputValue(double outputValue) {
|
||||||
|
this.outputValue = outputValue;
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,7 +7,7 @@ public class MainExe {
|
||||||
|
|
||||||
Timer time = new Timer(); // Instantiate Timer Object
|
Timer time = new Timer(); // Instantiate Timer Object
|
||||||
ScheduledTask scheduledTask = new ScheduledTask(); // Instantiate SheduledTask class
|
ScheduledTask scheduledTask = new ScheduledTask(); // Instantiate SheduledTask class
|
||||||
time.schedule(scheduledTask, 0, 1000 * 60 * 1 ); // Create Repetitively task for every 1 secs
|
time.schedule(scheduledTask, 0, 1000 * 60 * 1 ); // Create Repetitively task for every 1 min
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
package RuleEngine;
|
|
||||||
|
|
||||||
public class KalunaRules {
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
package Sensors;
|
|
||||||
|
|
||||||
public class Sensors {
|
|
||||||
public enum SensorType {
|
|
||||||
temperature, humidity
|
|
||||||
}
|
|
||||||
public enum Type {
|
|
||||||
KALUNA, TULIPS, TOMATOs
|
|
||||||
}
|
|
||||||
private int sensorId;
|
|
||||||
private String sensorDescription;
|
|
||||||
private int sensorBattery;
|
|
||||||
private int sensorOutput;
|
|
||||||
private int latitude;
|
|
||||||
private int longitude;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
|
||||||
|
<kbase name="rules" packages="rules">
|
||||||
|
<ksession name="ksession-rule"/>
|
||||||
|
</kbase>
|
||||||
|
</kmodule>
|
|
@ -0,0 +1,14 @@
|
||||||
|
import Knowledgebase.Product
|
||||||
|
|
||||||
|
rule "Offer for Diamond"
|
||||||
|
when
|
||||||
|
productObject: Product(type=="diamond")
|
||||||
|
then
|
||||||
|
productObject.setDiscount(15);
|
||||||
|
end
|
||||||
|
rule "Offer for Gold"
|
||||||
|
when
|
||||||
|
productObject: Product(type=="gold")
|
||||||
|
then
|
||||||
|
productObject.setDiscount(25);
|
||||||
|
end
|
|
@ -0,0 +1,14 @@
|
||||||
|
import Knowledgebase.Product
|
||||||
|
|
||||||
|
rule "Offer for Diamond"
|
||||||
|
when
|
||||||
|
productObject: Product(type=="diamond")
|
||||||
|
then
|
||||||
|
productObject.setDiscount(15);
|
||||||
|
end
|
||||||
|
rule "Offer for Gold"
|
||||||
|
when
|
||||||
|
productObject: Product(type=="gold")
|
||||||
|
then
|
||||||
|
productObject.setDiscount(25);
|
||||||
|
end
|
Loading…
Reference in New Issue