推理机无法将A类下的类分类为另一类B的补充。
我在protege 5中创建了一个最小的OWL本体示例(基于著名的披萨示例)来说明这个问题。
有两个披萨类:Americana和Soho,前者带有肉馅料,后者具有蔬菜馅料。 然后分为两类:VegetarianPizza(定义为带有蔬菜馅料的比萨饼)和NonVegetarianPizza(非素食主义者的比萨饼)定义为非VegetarianPizza的那些比萨饼。 Soho已正确归类于VegetarianPizza,但Americana未归类于NonVegetarianPizza。
有人可以解释出什么问题吗?
代码如下:
<?xml version="1.0"?>
<Ontology xmlns="http://www.w3.org/2002/07/owl#"
xml:base="http://www.pizza.com/ontologies/pizza-minimal.owl"
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.pizza.com/ontologies/pizza-minimal.owl"
versionIRI="http://www.pizza.com/ontologies/pizza-minimal.owl/v1.0">
<Prefix name="" IRI="http://www.pizza.com/ontologies/pizza-minimal.owl"/>
<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>
<ObjectProperty IRI="#isToppingOf"/>
</Declaration>
<Declaration>
<ObjectProperty IRI="#hasTopping"/>
</Declaration>
<Declaration>
<Class IRI="#NonVegetarianPizza"/>
</Declaration>
<Declaration>
<Class IRI="#SohoPizza"/>
</Declaration>
<Declaration>
<Class IRI="#VegetableTopping"/>
</Declaration>
<Declaration>
<Class IRI="#VegetarianPizza"/>
</Declaration>
<Declaration>
<Class IRI="#Pizza"/>
</Declaration>
<Declaration>
<Class IRI="#MeatTopping"/>
</Declaration>
<Declaration>
<Class IRI="#PizzaTopping"/>
</Declaration>
<Declaration>
<Class IRI="#AmericanaPizza"/>
</Declaration>
<EquivalentClasses>
<Class IRI="#NonVegetarianPizza"/>
<ObjectIntersectionOf>
<Class IRI="#Pizza"/>
<ObjectComplementOf>
<Class IRI="#VegetarianPizza"/>
</ObjectComplementOf>
</ObjectIntersectionOf>
</EquivalentClasses>
<EquivalentClasses>
<Class IRI="#VegetarianPizza"/>
<ObjectIntersectionOf>
<Class IRI="#Pizza"/>
<ObjectAllValuesFrom>
<ObjectProperty IRI="#hasTopping"/>
<Class IRI="#VegetableTopping"/>
</ObjectAllValuesFrom>
</ObjectIntersectionOf>
</EquivalentClasses>
<SubClassOf>
<Class IRI="#AmericanaPizza"/>
<Class IRI="#Pizza"/>
</SubClassOf>
<SubClassOf>
<Class IRI="#AmericanaPizza"/>
<ObjectSomeValuesFrom>
<ObjectProperty IRI="#hasTopping"/>
<Class IRI="#MeatTopping"/>
</ObjectSomeValuesFrom>
</SubClassOf>
<SubClassOf>
<Class IRI="#AmericanaPizza"/>
<ObjectAllValuesFrom>
<ObjectProperty IRI="#hasTopping"/>
<Class IRI="#MeatTopping"/>
</ObjectAllValuesFrom>
</SubClassOf>
<SubClassOf>
<Class IRI="#MeatTopping"/>
<Class IRI="#PizzaTopping"/>
</SubClassOf>
<SubClassOf>
<Class IRI="#SohoPizza"/>
<Class IRI="#Pizza"/>
</SubClassOf>
<SubClassOf>
<Class IRI="#SohoPizza"/>
<ObjectSomeValuesFrom>
<ObjectProperty IRI="#hasTopping"/>
<Class IRI="#VegetableTopping"/>
</ObjectSomeValuesFrom>
</SubClassOf>
<SubClassOf>
<Class IRI="#SohoPizza"/>
<ObjectAllValuesFrom>
<ObjectProperty IRI="#hasTopping"/>
<Class IRI="#VegetableTopping"/>
</ObjectAllValuesFrom>
</SubClassOf>
<SubClassOf>
<Class IRI="#VegetableTopping"/>
<Class IRI="#PizzaTopping"/>
</SubClassOf>
<InverseObjectProperties>
<ObjectProperty IRI="#hasTopping"/>
<ObjectProperty IRI="#isToppingOf"/>
</InverseObjectProperties>
<ObjectPropertyDomain>
<ObjectProperty IRI="#hasTopping"/>
<Class IRI="#Pizza"/>
</ObjectPropertyDomain>
<ObjectPropertyRange>
<ObjectProperty IRI="#hasTopping"/>
<Class IRI="#PizzaTopping"/>
</ObjectPropertyRange>
</Ontology>
答案 0 :(得分:1)
此示例是标准OWL教程的一部分,请参见here。显然,本教程有点不一致。
将Test Appium
AppiumLibrary.Open Application http://localhost:4723/wd/hub platformName=Android platformVersion=6.0.1 deviceName=0815f853b6d22c05 browserName=default
AppiumLibrary.Go To Url https://www.amazon.com/
sleep 5s
${current_url} get current url
log to console ${current_url}
声明为VegetableTopping
Disjoint With
解决了这个问题。