2016-05-23 2 views
0

Как установить несколько ограничений для данного класса совы?OWL Как использовать несколько ограничений для класса

Пример: Данный курс должен быть, по крайней мере 1, но не более 10 студентов:

 :Course a owl:Class; 
     owl:equivalentClass [a owl:Restriction; 
     owl:onProperty :takenBy; 
     owl:minCardinality 1] . 

    :Student a owl:Class . 

    :takenBy a rdf:Property; 
    rdfs:domain :Course; 
    rdfs:range :Student . 

Это устанавливает ограничение, что курс должен быть, по крайней мере, 1 студент, но как также примените ограничение совы: maxCardinality 10?

ответ

2

Для этого можно использовать owl:intersectionOf.

:Course a owl:Class; 
    owl:equivalentClass [ 
      owl:intersectionOf [ a owl:Restriction ; 
           owl:onProperty :takenBy; 
           owl:minCardinality 1] ; 
           [ a owl:Restriction ; 
           owl:onProperty :takenBy; 
           owl:maxCardinality 10] 
      ] 
    ]. 
+0

Отлично :) Было бы также справедливо сказать: [owl: Restriction; сова: onProperty: takeBy; owl: minCardinality 1, сова: maxCardinality 10]. ? –

+0

Я так не думаю, что каждое ограничение должно быть отдельным IIRC. –

Смежные вопросы