嗨,我是本体初学者,
我已经构建了一个本体,并使用 Protege 保存了启用规则的 RDF 文件。我将构建一个从本体获取一些输入的 Web 服务。可以通过查询 swrl:something swrlb:something 标签下的参数、类和属性谓词来提供输入。
例如:IF age<5 & weather='Windy' & season='Winter' THEN InfluenzaRisk=High
我需要一个查询来检索age<5 & weather='Windy' & season='Winter'
和另一个查询来检索InfluenzaRisk=High
.
作为 SWRL,前件放在这个标签 swrl:body中,后件放在这个标签 swrl:head 中。
我在下面尝试了这些查询,但它在前因和后因中都有参数。我期待有一种方法可以仅在 swrl:body 或 swrl:head 中缩小查询搜索的范围。
有没有办法做到这一点?
SELECT ?subject ?object
WHERE { ?subject swrl:argument1 ?object }
ORDER BY ?subject ?object
SELECT ?subject ?object
WHERE { ?subject swrl:argument2 ?object }
ORDER BY ?subject ?object
SELECT ?subject ?object
WHERE { ?subject swrl:propertyPredicate ?object }
ORDER BY ?subject ?object
下面我附上本体中的一条最短规则。
<rdf:Description>
<swrla:isRuleEnabled rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean">true</swrla:isRuleEnabled>
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Anthrax risk to non-vegan</rdfs:comment>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">AnthraxRisk4</rdfs:label>
<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://www.vhynaulia.com/revalina/ontologies/2016/10/pwidas#Person"/>
<swrl:argument1 rdf:resource="http://www.vhynaulia.com/revalina/ontologies/2016/10/pwidas#allperson"/>
</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://www.vhynaulia.com/revalina/ontologies/2016/10/pwidas#hasHabits"/>
<swrl:argument1 rdf:resource="http://www.vhynaulia.com/revalina/ontologies/2016/10/pwidas#allperson"/>
<swrl:argument2 rdf:resource="http://www.vhynaulia.com/revalina/ontologies/2016/10/pwidas#EatingMeats"/>
</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>
</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#BuiltinAtom"/>
<swrl:builtin rdf:resource="http://sqwrl.stanford.edu/ontologies/built-ins/3.4/sqwrl.owl#select"/>
<swrl:arguments rdf:parseType="Collection">
<rdf:Description rdf:about="http://www.vhynaulia.com/revalina/ontologies/2016/10/pwidas#allperson"/>
</swrl:arguments>
</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>