Reputation: 103
I'm facing what i'm calling an issue, but it's probably not.
For some needs, i'm creating a serie of swrl rules through OWL API, which after been serialized will be added to a stardog repository by simple file upload.
For example purpose, i have adapted my code to generate two very simple swrl rule axioms: for a given list of terms, if a an item has all the terms, it must be classified as the classification class in parameter.
Here, i choosed
I use this version:
[edited accordingly to Ignazio hint]
compile group: 'net.sourceforge.owlapi', name: 'owlapi-distribution', version: '5.1.6'
So i have something like that to produce the swrl rule axioms:
import org.semanticweb.owlapi.apibinding.OWLManager;
import org.semanticweb.owlapi.formats.RDFXMLDocumentFormat;
import org.semanticweb.owlapi.model.*;
import java.io.File;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class StackOverflowExemple {
private final static String BASE_IRI = "http://foo.bar/exemple.owl";
private final static String CLASS_ITEM = BASE_IRI + "#Item";
private final static String CLASS_TERM = BASE_IRI + "#Term";
private final static String PROP_ISCLASSIFIED = BASE_IRI + "#isClassified";
private final static String PROP_HASTERM = BASE_IRI + "#hasTerm";
private final static String IND_IT = BASE_IRI + "#it";
public static void main(String[] args) throws Exception {
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
OWLOntology onto = manager.createOntology();
SWRLRule rule1 = createRule(manager, Arrays.asList(new String[]{"tomato"}), BASE_IRI + "#aboutVegetables");
manager.applyChange(new AddAxiom(onto, rule1));
SWRLRule rule2 = createRule(manager, Arrays.asList(new String[]{"monkey", "donkey"}), BASE_IRI + "#aboutAnimals");
manager.applyChange(new AddAxiom(onto, rule2));
File output = new File("foo.rdf");
OWLDocumentFormat format = new RDFXMLDocumentFormat();
manager.saveOntology(onto, format, IRI.create(output));
}
private static SWRLRule createRule(OWLOntologyManager manager,
List<String> inputWords,
String classificationClass) throws Exception {
OWLDataFactory factory = manager.getOWLDataFactory();
OWLClass classItem = factory.getOWLClass(IRI.create(CLASS_ITEM));
OWLClass classTerm = factory.getOWLClass(IRI.create(CLASS_TERM));
/**
* Prepararing andecedent (has term conditions)
*/
SWRLVariable varItem = factory.getSWRLVariable(IRI.create(IND_IT));
OWLObjectProperty propHasTerm = factory.getOWLObjectProperty(IRI.create(PROP_HASTERM));
Set<SWRLAtom> antecedent = new HashSet<>();
for (String term : inputWords) {
OWLNamedIndividual termInd = factory.getOWLNamedIndividual(IRI.create(BASE_IRI + "#" + term));
SWRLIndividualArgument termIndArg = factory.getSWRLIndividualArgument(termInd);
SWRLObjectPropertyAtom propAtom = factory.getSWRLObjectPropertyAtom(propHasTerm,
varItem,
termIndArg);
antecedent.add(propAtom);
antecedent.add(factory.getSWRLClassAtom(classTerm, termIndArg));
antecedent.add(factory.getSWRLClassAtom(classItem, varItem));
}
/**
* Building consequent part
*/
OWLNamedIndividual classificationIndividual = factory.getOWLNamedIndividual(IRI.create(classificationClass));
OWLObjectProperty propClassified = factory.getOWLObjectProperty(IRI.create(PROP_ISCLASSIFIED));
SWRLObjectPropertyAtom propClassifiedAtom = factory.getSWRLObjectPropertyAtom(propClassified,
varItem,
factory.getSWRLIndividualArgument(classificationIndividual));
Set<SWRLAtom> consequent = new HashSet<>();
consequent.add(propClassifiedAtom);
/**
* Create the swrl rule
*/
SWRLRule rule = factory.getSWRLRule(antecedent,
consequent);
return rule;
}
}
The problem lies with the output, the swrl rules are merged.
The output file contains two rules, it's ok, but if you look at the first one, it contains the second one, or something like that.
Output file content (the swrl rule part only) :
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#Imp"/>
<swrl:body>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#IndividualPropertyAtom"/>
<swrl:propertyPredicate rdf:resource="http://foo.bar/exemple.owl#hasTerm"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#it"/>
<swrl:argument2 rdf:resource="http://foo.bar/exemple.owl#tomato"/>
</rdf:Description>
</rdf:first>
<rdf:rest>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#ClassAtom"/>
<swrl:classPredicate rdf:resource="http://foo.bar/exemple.owl#Term"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#tomato"/>
</rdf:Description>
</rdf:first>
<rdf:rest>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#Imp"/>
<swrl:body>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#ClassAtom"/>
<swrl:classPredicate rdf:resource="http://foo.bar/exemple.owl#Term"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#monkey"/>
</rdf:Description>
</rdf:first>
<rdf:rest>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#IndividualPropertyAtom"/>
<swrl:propertyPredicate rdf:resource="http://foo.bar/exemple.owl#hasTerm"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#it"/>
<swrl:argument2 rdf:resource="http://foo.bar/exemple.owl#monkey"/>
</rdf:Description>
</rdf:first>
<rdf:rest>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#IndividualPropertyAtom"/>
<swrl:propertyPredicate rdf:resource="http://foo.bar/exemple.owl#hasTerm"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#it"/>
<swrl:argument2 rdf:resource="http://foo.bar/exemple.owl#donkey"/>
</rdf:Description>
</rdf:first>
<rdf:rest>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#ClassAtom"/>
<swrl:classPredicate rdf:resource="http://foo.bar/exemple.owl#Term"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#donkey"/>
</rdf:Description>
</rdf:first>
<rdf:rest>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#ClassAtom"/>
<swrl:classPredicate rdf:resource="http://foo.bar/exemple.owl#Item"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#it"/>
</rdf:Description>
</rdf:first>
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:Description>
</rdf:rest>
</rdf:Description>
</rdf:rest>
</rdf:Description>
</rdf:rest>
</rdf:Description>
</rdf:rest>
</rdf:Description>
</swrl:body>
<swrl:head>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#IndividualPropertyAtom"/>
<swrl:propertyPredicate rdf:resource="http://foo.bar/exemple.owl#isClassified"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#it"/>
<swrl:argument2 rdf:resource="http://foo.bar/exemple.owl#aboutAnimals"/>
</rdf:Description>
</rdf:first>
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:Description>
</swrl:head>
</rdf:Description>
</rdf:first>
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:Description>
</rdf:rest>
</rdf:Description>
</rdf:rest>
</rdf:Description>
</swrl:body>
<swrl:head>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#IndividualPropertyAtom"/>
<swrl:propertyPredicate rdf:resource="http://foo.bar/exemple.owl#isClassified"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#it"/>
<swrl:argument2 rdf:resource="http://foo.bar/exemple.owl#aboutVegetables"/>
</rdf:Description>
</rdf:first>
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:Description>
</swrl:head>
</rdf:Description>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#Imp"/>
<swrl:body>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#ClassAtom"/>
<swrl:classPredicate rdf:resource="http://foo.bar/exemple.owl#Term"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#monkey"/>
</rdf:Description>
</rdf:first>
<rdf:rest>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#IndividualPropertyAtom"/>
<swrl:propertyPredicate rdf:resource="http://foo.bar/exemple.owl#hasTerm"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#it"/>
<swrl:argument2 rdf:resource="http://foo.bar/exemple.owl#monkey"/>
</rdf:Description>
</rdf:first>
<rdf:rest>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#IndividualPropertyAtom"/>
<swrl:propertyPredicate rdf:resource="http://foo.bar/exemple.owl#hasTerm"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#it"/>
<swrl:argument2 rdf:resource="http://foo.bar/exemple.owl#donkey"/>
</rdf:Description>
</rdf:first>
<rdf:rest>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#ClassAtom"/>
<swrl:classPredicate rdf:resource="http://foo.bar/exemple.owl#Term"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#donkey"/>
</rdf:Description>
</rdf:first>
<rdf:rest>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#ClassAtom"/>
<swrl:classPredicate rdf:resource="http://foo.bar/exemple.owl#Item"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#it"/>
</rdf:Description>
</rdf:first>
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:Description>
</rdf:rest>
</rdf:Description>
</rdf:rest>
</rdf:Description>
</rdf:rest>
</rdf:Description>
</rdf:rest>
</rdf:Description>
</swrl:body>
<swrl:head>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first>
<rdf:Description>
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#IndividualPropertyAtom"/>
<swrl:propertyPredicate rdf:resource="http://foo.bar/exemple.owl#isClassified"/>
<swrl:argument1 rdf:resource="http://foo.bar/exemple.owl#it"/>
<swrl:argument2 rdf:resource="http://foo.bar/exemple.owl#aboutAnimals"/>
</rdf:Description>
</rdf:first>
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:Description>
</swrl:head>
</rdf:Description>
Obviously i see two possibilities:
So, if you have any hint, have encountered similar issue, or simply see how i'm wrong, i'll be pleased if you can share it :-)
Thanks
Upvotes: 0
Views: 335
Reputation: 103
As mentionned in the comments by Ignazio, he fixed the bug in 5.1.7 release
As long as i didn't have much time to explore what's going wrong, i choose to use another format of serialization, since the issue is not coming with all the available serialization formats...
So the issue didn't comes with at least with this two formats:
<DLSafeRule>
<Body>
<ClassAtom>
<Class IRI="http://foo.bar/exemple.owl#Term"/>
<NamedIndividual IRI="http://foo.bar/exemple.owl#monkey"/>
</ClassAtom>
<ObjectPropertyAtom>
<ObjectProperty IRI="http://foo.bar/exemple.owl#hasTerm"/>
<Variable IRI="http://foo.bar/exemple.owl#it"/>
<NamedIndividual IRI="http://foo.bar/exemple.owl#monkey"/>
</ObjectPropertyAtom>
<ObjectPropertyAtom>
<ObjectProperty IRI="http://foo.bar/exemple.owl#hasTerm"/>
<Variable IRI="http://foo.bar/exemple.owl#it"/>
<NamedIndividual IRI="http://foo.bar/exemple.owl#donkey"/>
</ObjectPropertyAtom>
<ClassAtom>
<Class IRI="http://foo.bar/exemple.owl#Term"/>
<NamedIndividual IRI="http://foo.bar/exemple.owl#donkey"/>
</ClassAtom>
<ClassAtom>
<Class IRI="http://foo.bar/exemple.owl#Item"/>
<Variable IRI="http://foo.bar/exemple.owl#it"/>
</ClassAtom>
</Body>
<Head>
<ObjectPropertyAtom>
<ObjectProperty IRI="http://foo.bar/exemple.owl#isClassified"/>
<Variable IRI="http://foo.bar/exemple.owl#it"/>
<NamedIndividual IRI="http://foo.bar/exemple.owl#aboutAnimals"/>
</ObjectPropertyAtom>
</Head>
</DLSafeRule>
<DLSafeRule>
<Body>
<ObjectPropertyAtom>
<ObjectProperty IRI="http://foo.bar/exemple.owl#hasTerm"/>
<Variable IRI="http://foo.bar/exemple.owl#it"/>
<NamedIndividual IRI="http://foo.bar/exemple.owl#tomato"/>
</ObjectPropertyAtom>
<ClassAtom>
<Class IRI="http://foo.bar/exemple.owl#Term"/>
<NamedIndividual IRI="http://foo.bar/exemple.owl#tomato"/>
</ClassAtom>
<ClassAtom>
<Class IRI="http://foo.bar/exemple.owl#Item"/>
<Variable IRI="http://foo.bar/exemple.owl#it"/>
</ClassAtom>
</Body>
<Head>
<ObjectPropertyAtom>
<ObjectProperty IRI="http://foo.bar/exemple.owl#isClassified"/>
<Variable IRI="http://foo.bar/exemple.owl#it"/>
<NamedIndividual IRI="http://foo.bar/exemple.owl#aboutVegetables"/>
</ObjectPropertyAtom>
</Head>
</DLSafeRule>
<rdf:Description rdf:about="http://foo.bar/exemple.owl#it">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#Variable"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid15">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#Imp"/>
<body xmlns="http://www.w3.org/2003/11/swrl#" rdf:nodeID="genid19"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid19">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first rdf:nodeID="genid20"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid20">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#IndividualPropertyAtom"/>
<propertyPredicate xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#hasTerm"/>
<argument1 xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#it"/>
<argument2 xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#tomato"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid19">
<rdf:rest rdf:nodeID="genid17"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid17">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first rdf:nodeID="genid18"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid18">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#ClassAtom"/>
<classPredicate xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#Term"/>
<argument1 xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#tomato"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid17">
<rdf:rest rdf:nodeID="genid16"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid16">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first rdf:nodeID="genid2"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid2">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#Imp"/>
<body xmlns="http://www.w3.org/2003/11/swrl#" rdf:nodeID="genid11"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid11">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first rdf:nodeID="genid12"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid12">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#ClassAtom"/>
<classPredicate xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#Term"/>
<argument1 xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#monkey"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid11">
<rdf:rest rdf:nodeID="genid9"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid9">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first rdf:nodeID="genid10"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid10">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#IndividualPropertyAtom"/>
<propertyPredicate xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#hasTerm"/>
<argument1 xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#it"/>
<argument2 xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#monkey"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid9">
<rdf:rest rdf:nodeID="genid7"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid7">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first rdf:nodeID="genid8"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid8">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#IndividualPropertyAtom"/>
<propertyPredicate xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#hasTerm"/>
<argument1 xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#it"/>
<argument2 xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#donkey"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid7">
<rdf:rest rdf:nodeID="genid5"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid5">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first rdf:nodeID="genid6"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid6">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#ClassAtom"/>
<classPredicate xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#Term"/>
<argument1 xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#donkey"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid5">
<rdf:rest rdf:nodeID="genid3"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid3">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first rdf:nodeID="genid1"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid1">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#ClassAtom"/>
<classPredicate xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#Item"/>
<argument1 xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#it"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid3">
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid2">
<head xmlns="http://www.w3.org/2003/11/swrl#" rdf:nodeID="genid13"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid13">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first rdf:nodeID="genid14"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid14">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#IndividualPropertyAtom"/>
<propertyPredicate xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#isClassified"/>
<argument1 xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#it"/>
<argument2 xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#aboutAnimals"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid13">
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid16">
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid15">
<head xmlns="http://www.w3.org/2003/11/swrl#" rdf:nodeID="genid21"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid21">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#AtomList"/>
<rdf:first rdf:nodeID="genid22"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid22">
<rdf:type rdf:resource="http://www.w3.org/2003/11/swrl#IndividualPropertyAtom"/>
<propertyPredicate xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#isClassified"/>
<argument1 xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#it"/>
<argument2 xmlns="http://www.w3.org/2003/11/swrl#" rdf:resource="http://foo.bar/exemple.owl#aboutVegetables"/>
</rdf:Description>
<rdf:Description rdf:nodeID="genid21">
<rdf:rest rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil"/>
</rdf:Description>
Upvotes: 0
Reputation: 10659
Owlapi 3.5.0 is ancient. The result you're seeing seems to be an issue in RDF/XML rendering.
Two things to try:
use Functional Syntax or OWL/XML instead, to see if this helps
use a newer owlapi version. Your code should compile with 5.1.6 with minor changes, most of which should be only on package names.
Edit: as discussed, the version actually used was 5.1.6. The problem seen was a bug, fixed in version 5.1.7.
Upvotes: 1