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,

Reply via email to