如何使用swrl

时间:2015-08-22 18:22:58

标签: protege4 swrl

这是我的第一个堆叠溢出的帖子,所以我要求一个令人鼓舞的回复:)(奖励声誉)

我正在尝试使用SWRL为我做一些计算。为了模仿这个问题,我创建了一个使用protege 4.3的小本体。它只有两个类Parent和Son。实例包括1个父(John)和3个儿子(son1,son2,son3)。约翰与3个儿子联系使用" hasSon"对象属性。使用" hasAge"提及每个儿子的年龄。 data-type属性(整数)。

问题1:我需要首先检查使用hasSon属性与给定父(John)链接的实例数。如何在SWRL中实现这一目标?

问题2:在知道了儿子的数量后,我必须加上他们的年龄来使用SWRL再次获得所有儿子的总年龄?

对我来说,这需要一个像加法一样的循环(a = a + b),但我不知道这在SWRL中是如何工作的。我已经为您附上了OWL代码。 (请注意,在实际本体中,链接的实例不是3但是变化并且计算它们是问题的一部分) 提前致谢

 <?xml version="1.0"?>


<!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 rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" >
    <!ENTITY parenttrial "http://www.semanticweb.org/admin/ontologies/2015/7/parenttrial#" >
]>


<rdf:RDF xmlns="http://www.semanticweb.org/admin/ontologies/2015/7/parenttrial#"
     xml:base="http://www.semanticweb.org/admin/ontologies/2015/7/parenttrial"
     xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
     xmlns:parenttrial="http://www.semanticweb.org/admin/ontologies/2015/7/parenttrial#"
     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#">
    <owl:Ontology rdf:about="http://www.semanticweb.org/admin/ontologies/2015/7/parenttrial"/>



    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Object Properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->




    <!-- http://www.semanticweb.org/admin/ontologies/2015/7/parenttrial#hasSon -->

    <owl:ObjectProperty rdf:about="&parenttrial;hasSon">
        <rdfs:domain rdf:resource="&parenttrial;Parent"/>
        <rdfs:range rdf:resource="&parenttrial;Son"/>
    </owl:ObjectProperty>



    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Data properties
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->




    <!-- http://www.semanticweb.org/admin/ontologies/2015/7/parenttrial#hasAge -->

    <owl:DatatypeProperty rdf:about="&parenttrial;hasAge"/>



    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Classes
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->




    <!-- http://www.semanticweb.org/admin/ontologies/2015/7/parenttrial#Parent -->

    <owl:Class rdf:about="&parenttrial;Parent"/>



    <!-- http://www.semanticweb.org/admin/ontologies/2015/7/parenttrial#Son -->

    <owl:Class rdf:about="&parenttrial;Son"/>



    <!-- 
    ///////////////////////////////////////////////////////////////////////////////////////
    //
    // Individuals
    //
    ///////////////////////////////////////////////////////////////////////////////////////
     -->




    <!-- http://www.semanticweb.org/admin/ontologies/2015/7/parenttrial#JohnF -->

    <owl:NamedIndividual rdf:about="&parenttrial;JohnF">
        <rdf:type rdf:resource="&parenttrial;Parent"/>
        <hasSon rdf:resource="&parenttrial;Son1"/>
        <hasSon rdf:resource="&parenttrial;Son2"/>
        <hasSon rdf:resource="&parenttrial;Son3"/>
    </owl:NamedIndividual>



    <!-- http://www.semanticweb.org/admin/ontologies/2015/7/parenttrial#Son1 -->

    <owl:NamedIndividual rdf:about="&parenttrial;Son1">
        <rdf:type rdf:resource="&parenttrial;Son"/>
        <hasAge rdf:datatype="&xsd;integer">3</hasAge>
    </owl:NamedIndividual>



    <!-- http://www.semanticweb.org/admin/ontologies/2015/7/parenttrial#Son2 -->

    <owl:NamedIndividual rdf:about="&parenttrial;Son2">
        <rdf:type rdf:resource="&parenttrial;Son"/>
        <hasAge rdf:datatype="&xsd;integer">4</hasAge>
    </owl:NamedIndividual>



    <!-- http://www.semanticweb.org/admin/ontologies/2015/7/parenttrial#Son3 -->

    <owl:NamedIndividual rdf:about="&parenttrial;Son3">
        <rdf:type rdf:resource="&parenttrial;Son"/>
        <hasAge rdf:datatype="&xsd;integer">5</hasAge>
    </owl:NamedIndividual>
</rdf:RDF>



<!-- Generated by the OWL API (version 3.4.2) http://owlapi.sourceforge.net -->

0 个答案:

没有答案