简体   繁体   English

如何使用 SPARQL 查询获得本体中的最少消费者?

[英]How to get Least common subsumer in ontology using SPARQL Query?

How to get Least Common Subsumer(LCS) of individuals in ontology using SPARQL Query?如何使用 SPARQL 查询获得本体中个体的最小公共消费者(LCS)? (I want to get common concept of two individuals. Here i have mentioned owl file code) (我想得到两个人的共同概念。这里我提到了owl文件代码)

<!DOCTYPE rdf:RDF [
    <!ENTITY owl "http://www.w3.org/2002/07/owl#" >
    <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" >
    <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" >
    <!ENTITY ace_lexicon "http://attempto.ifi.uzh.ch/ace_lexicon#" >
    <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
]>

<rdf:RDF xmlns="http://www.semanticweb.org/chetan/ontologies/2014/5/untitled-ontology-8#"
     xml:base="http://www.semanticweb.org/chetan/ontologies/2014/5/untitled-ontology-8"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:owl="http://www.w3.org/2002/07/owl#"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:ace_lexicon="http://attempto.ifi.uzh.ch/ace_lexicon#">
    <owl:Ontology rdf:about="http://www.semanticweb.org/chetan/ontologies/2014/5/untitled-ontology-8"/>

    <owl:AnnotationProperty rdf:about="&ace_lexicon;CN_pl"/>

    <owl:AnnotationProperty rdf:about="&ace_lexicon;CN_sg"/>

    <owl:AnnotationProperty rdf:about="&ace_lexicon;PN_sg"/>

    <owl:Class rdf:about="http://www.semanticweb.org/chetan/ontologies/2014/5/untitled-ontology-8#BollwormsPests_Pesticide">
        <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/chetan/ontologies/2014/5/untitled-ontology-8#Pesticide"/>
        <ace_lexicon:CN_pl>Bollworms_Pesticides</ace_lexicon:CN_pl>
        <ace_lexicon:CN_sg>Bollworms_Pesticide</ace_lexicon:CN_sg>
    </owl:Class>

    <owl:Class rdf:about="http://www.semanticweb.org/chetan/ontologies/2014/5/untitled-ontology-8#Carbamate">
        <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/chetan/ontologies/2014/5/untitled-ontology-8#BollwormsPests_Pesticide"/>
        <ace_lexicon:CN_pl>Carbamates</ace_lexicon:CN_pl>
        <ace_lexicon:CN_sg>Carbamate</ace_lexicon:CN_sg>
    </owl:Class>

    <owl:Class rdf:about="http://www.semanticweb.org/chetan/ontologies/2014/5/untitled-ontology-8#Organophosphates">
        <rdfs:subClassOf rdf:resource="http://www.semanticweb.org/chetan/ontologies/2014/5/untitled-ontology-8#BollwormsPests_Pesticide"/>
        <ace_lexicon:CN_pl>Organophosphateses</ace_lexicon:CN_pl>
        <ace_lexicon:CN_sg>Organophosphates</ace_lexicon:CN_sg>
    </owl:Class>

    <owl:Class rdf:about="http://www.semanticweb.org/chetan/ontologies/2014/5/untitled-ontology-8#Pesticide">
        <ace_lexicon:CN_pl>Pesticides</ace_lexicon:CN_pl>
        <ace_lexicon:CN_sg>Pesticide</ace_lexicon:CN_sg>
    </owl:Class>

    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/chetan/ontologies/2014/5/untitled-ontology-8#Carbaryl">
        <rdf:type rdf:resource="http://www.semanticweb.org/chetan/ontologies/2014/5/untitled-ontology-8#Carbamate"/>
        <ace_lexicon:PN_sg>Carbaryl</ace_lexicon:PN_sg>
    </owl:NamedIndividual>

    <owl:NamedIndividual rdf:about="http://www.semanticweb.org/chetan/ontologies/2014/5/untitled-ontology-8#Ethion">
        <rdf:type rdf:resource="http://www.semanticweb.org/chetan/ontologies/2014/5/untitled-ontology-8#Organophosphates"/>
        <ace_lexicon:PN_sg>Ethion</ace_lexicon:PN_sg>
    </owl:NamedIndividual>
</rdf:RDF>

Answer must be here BollwormsPests_Pesticide:答案必须在这里 BollwormsPests_Pesticide:

My Java code is :我的Java代码是:

package sparql;

import com.hp.hpl.jena.iri.impl.Main;
import com.hp.hpl.jena.query.Query;
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.rdf.model.InfModel;
import com.hp.hpl.jena.rdf.model.Literal;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Resource;
import com.hp.hpl.jena.reasoner.Reasoner;
import com.hp.hpl.jena.reasoner.ReasonerRegistry;
import com.hp.hpl.jena.util.FileManager;
import com.hp.hpl.jena.sparql.syntax.*;
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SPARQLReasoningQuery {

    public static void main(String args[]) throws FileNotFoundException, IOException {

        BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\Chetan\\Desktop\\Final Cotton Ontology\\query.txt"));
        String sparqlQuery;
        String[] finalStringArray = new String[2];
        String subString[];
        int i = 0;
        try {
            StringBuilder sb = new StringBuilder();
            String line = br.readLine();

            while (line != null) {
                sb.append(line);
                sb.append("\n");
                line = br.readLine();
            }
            sparqlQuery = sb.toString();
        } finally {
            br.close();
        }
        subString = sparqlQuery.split("\n", 2);

        Pattern pattern = Pattern.compile("\\?(\\w+)");
        Matcher matcher = pattern.matcher(subString[0]);

        while (matcher.find()) {
            finalStringArray[i] = matcher.group(1);
            i++;
        }
        sparqlTest(sparqlQuery, finalStringArray);
    }

    public static void sparqlTest(String sparqlQuery, String[] param) {
        FileManager.get().addLocatorClassLoader(Main.class.getClassLoader());
        Model model = FileManager.get().loadModel("C:\\Users\\Chetan\\Desktop\\Final Cotton Ontology\\CottonCropOntology.owl");
        Reasoner reasoner = ReasonerRegistry.getOWLReasoner().bindSchema(model);
        InfModel infmodel = ModelFactory.createInfModel(reasoner, model);
        String queryString = "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
                + "PREFIX owl: <http://www.w3.org/2002/07/owl#> "
                + "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> "
                + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> "
                + "PREFIX : <http://www.owl-ontologies.com/Ontology1359542935.owl#> " + sparqlQuery;
        Query query = QueryFactory.create(queryString);
        QueryExecution qexec = QueryExecutionFactory.create(queryString, infmodel);
        System.out.println("\t\t" + param[0] + "\t\t\t\t\t\t\t\t\t" +((param[1] != null)?param[1]:""));
        try {
            ResultSet results = qexec.execSelect();
            while (results.hasNext()) {
                QuerySolution soln = results.nextSolution();
                Resource r = soln.getResource(param[0]);
                System.out.print(r);
                if (param[1] != null) {
                    Literal name = soln.getLiteral(param[1]);
                    System.out.print("\t" + name.getString());
                }
                System.out.println();
            }
        } finally {
            qexec.close();
        }
    }
}

I use following query as taylor suggested me:我使用以下查询作为泰勒建议我:

select ?lcs where {
  ?lcs ^rdf:type :Carbaryl, :Ethion ;
       a owl:Class .
  filter not exists { 
    ?llcs ^rdf:type :Carbaryl, :Ethion ;
          a owl:Class ;
          rdfs:subClassOf+ ?lcs .
  }
}

Still getting blank in answer答案还是一片空白

This may be a duplicate of finding common superclass and length of path in class hierarchies , but that question doesn't have an accepted answer, and is also asking about path length, which makes things more complicated. 这可能是在类层次结构查找公共超类和路径长度的重复,但该问题没有接受的答案,并且还询问路径长度,这使事情变得更复杂。 In general, you can find common superclasses of classes ?subclass1 and ?subclass2 with: 通常,您可以找到类的常见超类?subclass1?subclass2

?subclass1 rdfs:subClassOf* ?superclass .
?subclass2 rdfs:subClassOf* ?superclass .

You can make that shorter with: 您可以通过以下方式缩短:

?superclass ^rdfs:subClassOf* ?subclass1, ?subclass2 .

That will find all common superclasses of the two subclasses. 这将找到两个子类的所有常见超类。 There may not be a single most specific common superclass, but you can find those that are as specific as possible by asking for only those superclasses that are not subclasses of any other superclass: 可能没有单个最具体的公共超类,但您可以通过仅请求那些不是任何其他超类的子类的超类来找到尽可能具体的超类:

?superclass ^rdfs:subClassOf* ?subclass1, ?subclass2 .
filter not exists { 
  ?moreSpecificSuperclass rdfs:subClassOf ?superclass ;
                          ^rdfs:subClassOf* ?subclass1, ?subclass2 .
}

To find the LCS of some particular instances, you'd need to do something like this: 要查找某些特定实例的LCS,您需要执行以下操作:

?instance1 rdf:type/rdfs:subClassOf* ?lcs .
?instance2 rdf:type/rdfs:subClassOf* ?lcs .
filter not exists {
  ?instance1 rdf:type/rdfs:subClassOf* ?sublcs .
  ?instance2 rdf:type/rdfs:subClassOf* ?sublcs .
  ?sublcs rdfs:subClassOf ?lcs .
}

As before, you can shorten that bit to: 和以前一样,您可以将该位缩短为:

?lcs ^(rdf:type/rdfs:subClassOf*) ?instance1, ?instance2 .
filter not exists {
  ?sublcs ^(rdf:type/rdfs:subClassOf*) ?instance1, ?instance2 ;
          rdfs:subClassOf ?lcs . 
}

The first line ensures that ?type is a common type of ?x and ?y, and the filter expression ensures that there's no subclass of ?type that is also a common type of ?x and ?y. 第一行确保?类型是?x和?y的常见类型,并且过滤器表达式确保没有?类型的子类,它也是?x和?y的常见类型。

Here's a minimal example that shows that this approach works. 这是一个最小的例子,表明这种方法有效。 Here's an ontology with the class hierarchy: 这是一个带有类层次结构的本体:

owl:Thing
  A
    B
      C {c}
      D {d}
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns="https://stackoverflow.com/q/23510851/1281433/lcs#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#">
  <owl:Ontology rdf:about="https://stackoverflow.com/q/23510851/1281433/lcs"/>
  <owl:Class rdf:about="https://stackoverflow.com/q/23510851/1281433/lcs#A"/>
  <owl:Class rdf:about="https://stackoverflow.com/q/23510851/1281433/lcs#B">
    <rdfs:subClassOf rdf:resource="https://stackoverflow.com/q/23510851/1281433/lcs#A"/>
  </owl:Class>
  <owl:Class rdf:about="https://stackoverflow.com/q/23510851/1281433/lcs#C">
    <rdfs:subClassOf rdf:resource="https://stackoverflow.com/q/23510851/1281433/lcs#B"/>
  </owl:Class>
  <owl:Class rdf:about="https://stackoverflow.com/q/23510851/1281433/lcs#D">
    <rdfs:subClassOf rdf:resource="https://stackoverflow.com/q/23510851/1281433/lcs#B"/>
  </owl:Class>
  <owl:NamedIndividual rdf:about="https://stackoverflow.com/q/23510851/1281433/lcs#c">
    <rdf:type rdf:resource="https://stackoverflow.com/q/23510851/1281433/lcs#C"/>
  </owl:NamedIndividual>
  <owl:NamedIndividual rdf:about="https://stackoverflow.com/q/23510851/1281433/lcs#d">
    <rdf:type rdf:resource="https://stackoverflow.com/q/23510851/1281433/lcs#D"/>
  </owl:NamedIndividual>
</rdf:RDF>

The individuals c and d are elements of the classes C and D, respectively. 个体c和d分别是C和D类的元素。 The LCS is B. Here's the query and its results: LCS是B.这是查询及其结果:

prefix :      <https://stackoverflow.com/q/23510851/1281433/lcs#> 
prefix owl:   <http://www.w3.org/2002/07/owl#>
prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#>

select ?lcs where {
  ?lcs ^(rdf:type/rdfs:subClassOf*) :c, :d ;
       a owl:Class .
  filter not exists { 
    ?llcs ^(rdf:type/rdfs:subClassOf*) :c, :d ;
          a owl:Class ;
          rdfs:subClassOf+ ?lcs .
  }
}
-------
| lcs |
=======
| :B  |
-------

I have applied this query on my java code :我已经在我的 java 代码上应用了这个查询:

select ?lcs where { ?lcs ^(rdfs:subClassOf*) <http://www.semanticweb.org/pc/ontologies/2021/10/untitled-ontology-5#OLAP> , <http://www.semanticweb.org/pc/ontologies/2021/10/untitled-ontology-5#OLTP> ; a owl:Class . filter not exists { ?llcs ^(rdfs:subClassOf*) <http://www.semanticweb.org/pc/ontologies/2021/10/untitled-ontology-5#OLAP> ,  <http://www.semanticweb.org/pc/ontologies/2021/10/untitled-ontology-5#OLTP>  ; a owl:Class ;  rdfs:subClassOf+ ?lcs .  } }

while running same query on python using owlready2 it gives me this result :在使用 owlready2 在 python 上运行相同的查询时,它给了我这个结果:

print(list(default_world.sparql(""" select ?lcs where { ?lcs ^(rdfs:subClassOf*) <http://www.semanticweb.org/pc/ontologies/2021/10/untitled-ontology-5#OLAP> , <http://www.semanticweb.org/pc/ontologies/2021/10/untitled-ontology-5#OLTP> ; a owl:Class . filter not exists { ?llcs ^(rdfs:subClassOf*) <http://www.semanticweb.org/pc/ontologies/2021/10/untitled-ontology-5#OLAP> ,  <http://www.semanticweb.org/pc/ontologies/2021/10/untitled-ontology-5#OLTP>  ; a owl:Class ;  rdfs:subClassOf+ ?lcs .  } }""")) )

==> [[ess.Database]] ==> [[ess.Database]]

################################################################### here is my owl file ############################################### ################# 这是我的猫头鹰文件

<?xml version="1.0"?>
<Ontology xmlns="http://www.w3.org/2002/07/owl#"
     xml:base="http://www.semanticweb.org/pc/ontologies/2021/10/untitled-ontology-5"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:xml="http://www.w3.org/XML/1998/namespace"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     ontologyIRI="http://www.semanticweb.org/pc/ontologies/2021/10/untitled-ontology-5">
    <Prefix name="" IRI="http://www.semanticweb.org/pc/ontologies/2021/10/untitled-ontology-5#"/>
    <Prefix name="owl" IRI="http://www.w3.org/2002/07/owl#"/>
    <Prefix name="rdf" IRI="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
    <Prefix name="xml" IRI="http://www.w3.org/XML/1998/namespace"/>
    <Prefix name="xsd" IRI="http://www.w3.org/2001/XMLSchema#"/>
    <Prefix name="rdfs" IRI="http://www.w3.org/2000/01/rdf-schema#"/>
    <Declaration>
        <Class IRI="#Architecture_design"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Conceptual_design"/>
    </Declaration>
    <Declaration>
        <Class IRI="#DTD_unification"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Data_Warehouse"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Database"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Design"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Diamond_model"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Document_Warehouse"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Galaxy_model"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Information_system"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Logical_design"/>
    </Declaration>
    <Declaration>
        <Class IRI="#MOLAP"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Multidimensional_modeling"/>
    </Declaration>
    <Declaration>
        <Class IRI="#OLAP"/>
    </Declaration>
    <Declaration>
        <Class IRI="#OLTP"/>
    </Declaration>
    <Declaration>
        <Class IRI="#OOLAP"/>
    </Declaration>
    <Declaration>
        <Class IRI="#ROLAP"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Similarity_factor"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Snowflake"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Star"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Star_model"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Storage"/>
    </Declaration>
    <Declaration>
        <Class IRI="#Unified_tree"/>
    </Declaration>
    <Declaration>
        <Class IRI="#XML_Document_Warehouse"/>
    </Declaration>
    <Declaration>
        <Class IRI="#XML_document"/>
    </Declaration>
    <SubClassOf>
        <Class IRI="#Architecture_design"/>
        <Class IRI="#Design"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Conceptual_design"/>
        <Class IRI="#Design"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#DTD_unification"/>
        <Class IRI="#XML_Document_Warehouse"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Data_Warehouse"/>
        <Class IRI="#Storage"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Database"/>
        <Class IRI="#Information_system"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Design"/>
        <Class IRI="#Data_Warehouse"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Diamond_model"/>
        <Class IRI="#Multidimensional_modeling"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Document_Warehouse"/>
        <Class IRI="#Storage"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Galaxy_model"/>
        <Class IRI="#Multidimensional_modeling"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Logical_design"/>
        <Class IRI="#Design"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#MOLAP"/>
        <Class IRI="#Architecture_design"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Multidimensional_modeling"/>
        <Class IRI="#XML_Document_Warehouse"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#OLAP"/>
        <Class IRI="#Database"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#OLTP"/>
        <Class IRI="#Database"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#OOLAP"/>
        <Class IRI="#Architecture_design"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#ROLAP"/>
        <Class IRI="#Architecture_design"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Similarity_factor"/>
        <Class IRI="#DTD_unification"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Snowflake"/>
        <Class IRI="#Logical_design"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Star"/>
        <Class IRI="#Logical_design"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Star_model"/>
        <Class IRI="#Multidimensional_modeling"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Storage"/>
        <Class IRI="#OLAP"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#Unified_tree"/>
        <Class IRI="#DTD_unification"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#XML_Document_Warehouse"/>
        <Class IRI="#Document_Warehouse"/>
    </SubClassOf>
    <SubClassOf>
        <Class IRI="#XML_document"/>
        <Class IRI="#XML_Document_Warehouse"/>
    </SubClassOf>
    <DisjointClasses>
        <Class IRI="#Architecture_design"/>
        <Class IRI="#Conceptual_design"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#Architecture_design"/>
        <Class IRI="#Logical_design"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#Conceptual_design"/>
        <Class IRI="#Logical_design"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#DTD_unification"/>
        <Class IRI="#Multidimensional_modeling"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#DTD_unification"/>
        <Class IRI="#XML_document"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#Data_Warehouse"/>
        <Class IRI="#Document_Warehouse"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#Diamond_model"/>
        <Class IRI="#Galaxy_model"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#Diamond_model"/>
        <Class IRI="#Star_model"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#Galaxy_model"/>
        <Class IRI="#Star_model"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#MOLAP"/>
        <Class IRI="#OOLAP"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#MOLAP"/>
        <Class IRI="#ROLAP"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#Multidimensional_modeling"/>
        <Class IRI="#XML_document"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#OLAP"/>
        <Class IRI="#OLTP"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#OOLAP"/>
        <Class IRI="#ROLAP"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#Similarity_factor"/>
        <Class IRI="#Unified_tree"/>
    </DisjointClasses>
    <DisjointClasses>
        <Class IRI="#Snowflake"/>
        <Class IRI="#Star"/>
    </DisjointClasses>
</Ontology>

<!-- Generated by the OWL API (version 4.5.9.2019-02-01T07:24:44Z) https://github.com/owlcs/owlapi -->

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM