I've been trying to write SWRL rules that automate creation of new entities and their assignment to classes and predicates in a Protege ontology. The code here didn't result in creation of even one individual, neither did the example in the readme work.
For clarity, here is the rule I'm trying to make work:
Person(?person) ^ hasSSN(?person, ?ssn) ^ swrlx:makeOWLThing(?patient, ?person) -> Patient(?patient) ^ hasPID(?patient, ?ssn)
In this ontology:
@prefix : <http://www.semanticweb.org/richard/ontologies/2018/7/untitled-ontology-48#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@base <http://www.semanticweb.org/richard/ontologies/2018/7/untitled-ontology-48> .
<http://www.semanticweb.org/richard/ontologies/2018/7/untitled-ontology-48> rdf:type owl:Ontology .
#################################################################
# Annotation properties
#################################################################
### http://swrl.stanford.edu/ontologies/3.3/swrla.owl#isRuleEnabled
<http://swrl.stanford.edu/ontologies/3.3/swrla.owl#isRuleEnabled> rdf:type owl:AnnotationProperty .
#################################################################
# Data properties
#################################################################
### http://www.semanticweb.org/richard/ontologies/2018/7/untitled-ontology-48#hasPID
:hasPID rdf:type owl:DatatypeProperty .
### http://www.semanticweb.org/richard/ontologies/2018/7/untitled-ontology-48#hasSSN
:hasSSN rdf:type owl:DatatypeProperty .
#################################################################
# Classes
#################################################################
### http://www.semanticweb.org/richard/ontologies/2018/7/untitled-ontology-48#Patient
:Patient rdf:type owl:Class .
### http://www.semanticweb.org/richard/ontologies/2018/7/untitled-ontology-48#Person
:Person rdf:type owl:Class .
#################################################################
# Individuals
#################################################################
### http://www.semanticweb.org/richard/ontologies/2018/7/untitled-ontology-48#person1
:person1 rdf:type owl:NamedIndividual ,
:Person ;
:hasSSN 1001 .
### http://www.semanticweb.org/richard/ontologies/2018/7/untitled-ontology-48#person2
:person2 rdf:type owl:NamedIndividual ,
:Person ;
:hasSSN 1002 .
### http://www.semanticweb.org/richard/ontologies/2018/7/untitled-ontology-48#person3
:person3 rdf:type owl:NamedIndividual ,
:Person ;
:hasSSN 1003 .
#################################################################
# Rules
#################################################################
:person rdf:type <http://www.w3.org/2003/11/swrl#Variable> .
:ssn rdf:type <http://www.w3.org/2003/11/swrl#Variable> .
:patient rdf:type <http://www.w3.org/2003/11/swrl#Variable> .
[ <http://swrl.stanford.edu/ontologies/3.3/swrla.owl#isRuleEnabled> "true"^^xsd:boolean ;
rdfs:comment "Patient For Every Person With PID Equal To SSN"^^xsd:string ;
rdfs:label "PatientForEveryPersonWithPIDEqualToSSN"^^xsd:string ;
rdf:type <http://www.w3.org/2003/11/swrl#Imp> ;
<http://www.w3.org/2003/11/swrl#body> [ rdf:type <http://www.w3.org/2003/11/swrl#AtomList> ;
rdf:first [ rdf:type <http://www.w3.org/2003/11/swrl#ClassAtom> ;
<http://www.w3.org/2003/11/swrl#classPredicate> :Person ;
<http://www.w3.org/2003/11/swrl#argument1> :person
] ;
rdf:rest [ rdf:type <http://www.w3.org/2003/11/swrl#AtomList> ;
rdf:first [ rdf:type <http://www.w3.org/2003/11/swrl#DatavaluedPropertyAtom> ;
<http://www.w3.org/2003/11/swrl#propertyPredicate> :hasSSN ;
<http://www.w3.org/2003/11/swrl#argument1> :person ;
<http://www.w3.org/2003/11/swrl#argument2> :ssn
] ;
rdf:rest [ rdf:type <http://www.w3.org/2003/11/swrl#AtomList> ;
rdf:first [ rdf:type <http://www.w3.org/2003/11/swrl#BuiltinAtom> ;
<http://www.w3.org/2003/11/swrl#builtin> <http://swrl.stanford.edu/ontologies/built-ins/3.3/swrlx.owl#makeOWLThing> ;
<http://www.w3.org/2003/11/swrl#arguments> ( :patient
:person
)
] ;
rdf:rest rdf:nil
]
]
] ;
<http://www.w3.org/2003/11/swrl#head> [ rdf:type <http://www.w3.org/2003/11/swrl#AtomList> ;
rdf:first [ rdf:type <http://www.w3.org/2003/11/swrl#ClassAtom> ;
<http://www.w3.org/2003/11/swrl#classPredicate> :Patient ;
<http://www.w3.org/2003/11/swrl#argument1> :patient
] ;
rdf:rest [ rdf:type <http://www.w3.org/2003/11/swrl#AtomList> ;
rdf:first [ rdf:type <http://www.w3.org/2003/11/swrl#DatavaluedPropertyAtom> ;
<http://www.w3.org/2003/11/swrl#propertyPredicate> :hasPID ;
<http://www.w3.org/2003/11/swrl#argument1> :patient ;
<http://www.w3.org/2003/11/swrl#argument2> :ssn
] ;
rdf:rest rdf:nil
]
]
] .
### Generated by the OWL API (version 4.2.8.20170104-2310) https://github.com/owlcs/owlapi