【问题标题】:OWL-API 5.1.6 SWRL rule generation and RDFXMLDocumentFormat : rules are mergedOWL-API 5.1.6 SWRL 规则生成和 RDFXMLDocumentFormat :规则被合并
【发布时间】:2018-08-13 07:15:34
【问题描述】:

什么:

我正面临我所说的问题,但可能不是。

出于某些需要,我通过OWL API创建了一系列swrl规则,序列化后将通过简单的文件上传添加到stardog存储库中。

例如,为了生成两个非常简单的 swrl 规则公理,我调整了我的代码:对于给定的术语列表,如果一个项目具有所有术语,则必须将其分类为参数中的分类类。

在这里,我选择了

  • 番茄 -> 关于蔬菜
  • 猴子,驴 -> 关于动物

如何:

我用的是这个版本:

[根据 Ignazio 的提示进行了相应的编辑]

compile group: 'net.sourceforge.owlapi', name: 'owlapi-distribution', version: '5.1.6'

所以我有类似的东西来产生 swrl 规则公理:

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;
}

}

出了什么问题:

问题出在输出上,swrl规则被合并了。

输出文件包含两个规则,没关系,但是如果你看第一个,它包含第二个,或者类似的东西。

输出文件内容(仅限 swrl 规则部分):

<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>

帮助:

显然我看到了两种可能性:

  • 我使用库的方式错误(我已经成功地使用了此代码:/)
  • 库有问题(序列化)

所以,如果你有任何提示,遇到过类似的问题,或者只是看看我错了,如果你能分享我会很高兴:-)

谢谢

【问题讨论】:

    标签: java owl-api swrl


    【解决方案1】:

    Owlapi 3.5.0 是古老的。您看到的结果似乎是 RDF/XML 呈现中的问题。

    尝试两件事:

    • 改用函数式语法或 OWL/XML,看看这是否有帮助

    • 使用更新的 owlapi 版本。您的代码应该使用 5.1.6 进行编译,并进行细微的更改,其中大部分应该只在包名称上。

    编辑:如前所述,实际使用的版本是 5.1.6。看到的问题是一个错误,已在 5.1.7 版中修复。

    【讨论】:

    • 事实上,我应用了您的建议,并且我意识到我之前已经使用了更新的版本(5.1.4)。虽然,更改为 5.1.6 并没有太大帮助,但并没有带来代码调整,因此我对可用格式进行了更多挖掘,有趣的是,RioRDFXMLDocumentFormat 和 OWLXMLDocumentFormat 似乎产生了未合并的有效规则。我会相应地编辑我的帖子,目前我将作为使用另一种格式的有效解决方案来回答,非常感谢您的宝贵时间
    【解决方案2】:

    解决方案

    正如 Ignazio 在 cmets 中提到的,他在 5.1.7 版本中修复了该错误

    以前的部分解决方案(问题还是发生了一组更重要的序列化规则)

    只要我没有太多时间去探索出了什么问题,我就会选择使用另一种序列化格式,因为问题并不是所有可用的序列化格式都出现...

    所以问题至少与这两种格式无关:

    OWLXMLDocumentFormat

    <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>
    

    RioRDFXMLDocumentFormat

    <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>
    

    【讨论】:

    • 该错误已在 OWLAPI 5.1.7 中修复
    猜你喜欢
    • 2021-11-12
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 2015-11-23
    相关资源
    最近更新 更多