related question:
https://stackoverflow.com/questions/68492170/inferred-rule-with-jena
On 23/07/2021 00:05, Brian Le wrote:
Please see below I corrected it I am just trying to write rules to have each
concept come out with an exercise. The one I wrote just pulls everything any
assistance would be greatly appreciated.
Thanks,
Brian
On Jul 22, 2021, at 3:13 PM, Brian Le <[email protected]> wrote:
Hello All,
Apologies If I don't do this right but I am new to java and jena so please bear
with me if I am doing this wrong completely. I just started to get back into
coding after being away for some time. I've made an ontology but I was
wondering If It is possible to use SPARQL to pull in everything and then use a
rule to help filter the data and make it unique. Any advice or help would be
really
String prefixString=
"@prefix uo:
<http://www.semanticweb.org/szhang10/ontologies/2021/5/untitled-ontology-2#>";
String inputFile =
"C:\\Users\\brian\\IdeaProjects\\hello-semantic-web\\src\\model.rdf";
Model model = ModelFactory.createDefaultModel();
InputStream in = FileManager.get().open(inputFile);
if (in == null) {
throw new IllegalArgumentException("Filenot found");
}
model.read(in, "");
String rules = prefixString + "[rule: (uo:DiscreteStructures uo:HasConcept
uo:Recursion)->" +
"(uo:Recursion uo:HasConcept uo:DiscreteStructures)";
Reasoner reasoner = new GenericRuleReasoner(Rule.parseRules(rules));
InfModel inf = ModelFactory.createInfModel(reasoner, model);
inf.write(System.out,"TURTLE");
The example would come out to be something like |s
|o |
| untitled-ontology-2:Recursion | untitled-ontology-2:Exercise5-2 |
| untitled-ontology-2:Proposition | untitled-ontology-2:Exercise1-1 |
| untitled-ontology-2:Congruence | untitled-ontology-2:Exercise4-2 |
| untitled-ontology-2:Sequence | untitled-ontology-2:Exercise2-2 |
| untitled-ontology-2:Function | untitled-ontology-2:Exercise2-2 |
| untitled-ontology-2:Predicate | untitled-ontology-2:Exercise1-1 |
| untitled-ontology-2:Set | untitled-ontology-2:Exercise2-1 |
| untitled-ontology-2:Induction | untitled-ontology-2:Exercise5-1 |
Some snippet of the ont is <owl:NamedIndividual
rdf:about="http://www.semanticweb.org/ontologies/2021/5/untitled-ontology-2#Predicate">
<rdf:type
rdf:resource="http://www.semanticweb.org/ontologies/2021/5/untitled-ontology-2#Concept"/>
</owl:NamedIndividual>
<owl:NamedIndividual
rdf:about="http://www.semanticweb.org/ontologies/2021/5/untitled-ontology-2#Exercise1-1">
<rdf:type
rdf:resource="http://www.semanticweb.org/ontologies/2021/5/untitled-ontology-2#Exercise"/>
<untitled-ontology-2:isRelatedToConcept
rdf:resource="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Predicate"/>
<untitled-ontology-2:isRelatedToConcept
rdf:resource="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Proposition"/>
</owl:NamedIndividual>
<owl:NamedIndividual rdf:about="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Exercise1-2">
<rdf:type rdf:resource="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Exercise"/>
<untitled-ontology-2:isRelatedToConcept rdf:resource="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Predicate"/>
</owl:NamedIndividual>
<owl:NamedIndividual rdf:about="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Exercise2-1">
<rdf:type rdf:resource="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Exercise"/>
<untitled-ontology-2:isRelatedToConcept rdf:resource="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Set"/>
</owl:NamedIndividual>
in TTL format if needed
http://www.semanticweb.org/ontologies/2021/5/untitled-ontology-2#Structures:Structures
rdf:type owl:NamedIndividual ,:Course ;
:hasConcept :Congruence ,
:Function ,
:Induction ,
:Predicate ,
:Proposition ,
:Recursion ,
:Sequence ,
:Set ;
:hasTopic :BaseBExpansion ,
:TimeComplexity.
Any advice or help would be really appreciated needed any help tips
anything really would be greatly appreciated!
Thanks for everything,
On Thu, Jul 22, 2021 at 12:37 PM Brian Le <[email protected]> wrote:
Hello All,
Apologies If I don't do this right but I am new to java and jena so please bear
with me if I am doing this wrong completely. I just started to get back into
coding after being away for some time. I've made an ontology but I was
wondering If It is possible to use SPARQL to pull in everything and then use a
rule to help filter the data and make it unique. Any advice or help would be
really appreciated
public static String reasoningTest() {
Model model = ModelFactory.createDefaultModel();
String rules = "[rule1:(if possible?)]";
Instant start = Instant.now();
Reasoner reasoner = new GenericRuleReasoner(Rule.parseRules(rules));
InfModel inf = ModelFactory.createInfModel(reasoner, model);
String queryString = "select ?o (min(?s)) " +
"where { ?s untitled-ontology-2:isRelatedToConcept ?o }" +
" GROUP BY ?o";;
Query query = QueryFactory.create(queryString);
try (QueryExecution qexec = QueryExecutionFactory.create(query, inf)) {
ResultSet results = qexec.execSelect();
for ( ; results.hasNext() ; ) {
QuerySolution soln = results.nextSolution();
System.out.println(soln.toString());
}
}
Instant end = Instant.now();
System.out.println("Sparql query " + queryString + " evaluated in " +
Duration.between(start, end));
}
The example would come out to be something like |s
|o |
| untitled-ontology-2:Recursion | untitled-ontology-2:Exercise5-2 |
| untitled-ontology-2:Proposition | untitled-ontology-2:Exercise1-1 |
| untitled-ontology-2:Congruence | untitled-ontology-2:Exercise4-2 |
| untitled-ontology-2:Sequence | untitled-ontology-2:Exercise2-2 |
| untitled-ontology-2:Function | untitled-ontology-2:Exercise2-2 |
| untitled-ontology-2:Predicate | untitled-ontology-2:Exercise1-1 |
| untitled-ontology-2:Set | untitled-ontology-2:Exercise2-1 |
| untitled-ontology-2:Induction | untitled-ontology-2:Exercise5-1 |
Some snippet of the ont is <owl:NamedIndividual
rdf:about="http://www.semanticweb.org/ontologies/2021/5/untitled-ontology-2#Predicate">
<rdf:type
rdf:resource="http://www.semanticweb.org/ontologies/2021/5/untitled-ontology-2#Concept"/>
</owl:NamedIndividual>
<owl:NamedIndividual
rdf:about="http://www.semanticweb.org/ontologies/2021/5/untitled-ontology-2#Exercise1-1">
<rdf:type
rdf:resource="http://www.semanticweb.org/ontologies/2021/5/untitled-ontology-2#Exercise"/>
<untitled-ontology-2:isRelatedToConcept
rdf:resource="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Predicate"/>
<untitled-ontology-2:isRelatedToConcept
rdf:resource="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Proposition"/>
</owl:NamedIndividual>
<owl:NamedIndividual rdf:about="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Exercise1-2">
<rdf:type rdf:resource="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Exercise"/>
<untitled-ontology-2:isRelatedToConcept rdf:resource="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Predicate"/>
</owl:NamedIndividual>
<owl:NamedIndividual rdf:about="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Exercise2-1">
<rdf:type rdf:resource="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Exercise"/>
<untitled-ontology-2:isRelatedToConcept rdf:resource="http://www.semanticweb.org
/ontologies/2021/5/untitled-ontology-2#Set"/>
</owl:NamedIndividual>
in TTL format if needed
http://www.semanticweb.org/ontologies/2021/5/untitled-ontology-2#Structures:Structures
rdf:type owl:NamedIndividual ,:Course ;
:hasConcept :Congruence ,
:Function ,
:Induction ,
:Predicate ,
:Proposition ,
:Recursion ,
:Sequence ,
:Set ;
:hasTopic :BaseBExpansion ,
:TimeComplexity.
Any advice or help would be really appreciated needed any help tips
anything really would be greatly appreciated!
Thanks for everything,