繁体   English   中英

创建具有数据属性限制的个人

[英]create individual in protege with dataproprety restriction

大家晚上好,我已经创建了一个只有一个类(方法)的简单本体,并具有数据属性action_nb(整数),类型witch是(String),并且只能是(choice,rank,sort),然后使用查询来进行搜索,例如:选择WHERE操作编号<20且类型=“ choice”的方法

  1. 如何在间隔ex中声明action_nb,例如:methode1 => action_nb在[10,30]之间。

  2. 如何使用三个值来声明类型,例如:methode1 => type:“ choice”;

这是我现在拥有的代码:

SELECT ?inst 
WHERE {
   ?inst ex:action_nb ?value .
   ?inst  es:type  ?typ.

    FILTER (?value < 80)
    FILTER (?typ = " tri " )
}

对于1),您可以使用数据类型属性限制, 在此处进行说明

对于2),您应该使用owl:oneOf 您可以使用枚举类或枚举数据类型执行此操作:

枚举类只能在RDF资源(个人)的声明列表中具有成员。 您可以为每个选择创建一个不同的个体,然后为列表{choice, rank, sort}等效类创建一个MethodType类。 请注意,大括号是Protégé中的外观。 在Turtle中,它将如下所示:

:MethodType
  rdf:type owl:Class ;
  owl:equivalentClass [
      rdf:type owl:Class ;
      owl:oneOf (
          :choice
          :rank
          :sort
        ) ;
    ] ;
.

枚举数据类型是范围限制,包括RDF文字列表,在您的情况下, rdfs:range将是owl:oneOf {"choice", "rank", "sort"} (注意:1.这里的大括号注释很好; 2.也可以使用owl:allValuesFrom限制来实现。)

如果typeOPtypeDP分别是第一种方法的对象属性和typeDP方法的data属性,则查询可以是:

SELECT *
WHERE {
 ?m   a :Method;
:typeOP ?t .

FILTER EXISTS {?m :typeOP :choice}
}

SELECT *
WHERE {
 ?m   a :Method;
:typeDP ?t .

FILTER EXISTS {?m :typeDP "choice"}
}

分别。

暂无
暂无

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

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