如何在intervale ex中声明action_nb:methode1 => action_nb介于[10,30]之间。
如何使用三个值来声明类型ex:methode1 =>类型:"选择&#34 ;;
这是我现在的代码:
SELECT ?inst
WHERE {
?inst ex:action_nb ?value .
?inst es:type ?typ.
FILTER (?value < 80)
FILTER (?typ = " tri " )
}
答案 0 :(得分:1)
对于1),您可以使用数据类型属性限制,解释为here
对于2),您应该使用owl:oneOf
。您可以使用枚举类或枚举数据类型:
枚举类只能在声明的RDF资源列表(个人)中拥有成员。您可以为每个选项创建不同的个人,然后创建一个类MethodType
,其类别与列表{choice, rank, sort}
相同。请注意,大括号是它在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限制来实现。)
如果typeOP
和typeDP
分别是第一种方法的对象属性,则第二种方法的数据属性可能是:
SELECT *
WHERE {
?m a :Method;
:typeOP ?t .
FILTER EXISTS {?m :typeOP :choice}
}
和
SELECT *
WHERE {
?m a :Method;
:typeDP ?t .
FILTER EXISTS {?m :typeDP "choice"}
}
分别