在XML语法中使用OWl。第一步

时间:2012-11-30 14:12:57

标签: rdf owl

我刚刚开始在大学的项目中使用OWL。 该项目是关于披萨,这对于RDF和OWL来说似乎是一个常见的问题。所以我们首先要做的是塑造一种由两种配料组成的披萨:西红柿和奶酪。我使用属性madeof来连接它们。这是我尝试在http://www.mygrid.org.uk/OWL/Validator

验证的最小代码段
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns="http://example.org/pizzeria#">

    <owl:Ontology rdf:about=""/>  

    <!-- ========================= -->



    <owl:Class rdf:ID="Topping"/>

    <Topping rdf:ID="Cheese"/>
    <Topping rdf:ID="Tomato"/>

     <owl:ObjectProperty rdf:ID="madeOf">
            <rdfs:range rdf:resource="#Topping"/>
            <rdfs:domain rdf:resource="#Pizza"/>
     </owl:ObjectProperty>

     <!-- Pizza -->
     <owl:Class rdf:ID="Pizza">
         <!-- comes with Cheese and Tomato -->
         <rdfs:subClassOf>
                 <owl:Restriction>
                     <owl:onProperty rdf:resource="#madeOf"/>
                     <owl:hasValue rdf:resource="#Tomato"/>
                 </owl:Restriction>
         </rdfs:subClassOf>
         <rdfs:subClassOf>
             <owl:Restriction>
                 <owl:onProperty rdf:resource="#madeOf"/>
                 <owl:hasValue rdf:resource="#Cheese"/>
             </owl:Restriction>
         </rdfs:subClassOf>
     </owl:Class>
 </rdf:RDF>

然而,验证员告诉我:

OWL DL
个人价值:限制(a:madeOf value(a:Cheese))
个人价值:限制(a:madeOf value(a:Tomato))

OWL Full
无类别:http://example.org/pizzeria#Topping

我想,这意味着Toppings类没有被定义(我想我这样做了......)并且madeof属性出了问题。我想我在这里做错了什么,现在几乎停滞不前。

1 个答案:

答案 0 :(得分:4)

你的OWL很好,唯一的问题是使用RDF的XML编码。一般来说,如果可以,请避免直接使用RDF / XML。 Turtle是一种更紧凑,更易读的语法,并且比RDF / XML更少陷阱。

所以你遇到的问题是,虽然你确实为空前缀定义了扩展:

xmlns="http://example.org/pizzeria#"

您没有定义文档的基本URI。主题资源如:

<Topping rdf:ID="Cheese"/>

将被解释为相对于基URI,而不是它们具有默认的空白前缀。见上文第一段!

修复方法是定义基本URI以及默认前缀:

<rdf:RDF
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
 xmlns:owl="http://www.w3.org/2002/07/owl#"
 xmlns="http://example.org/pizzeria#"
 xml:base="http://example.org/pizzeria#"
>