В чем разница между совой:oneof и on:oneof поддержки в owlim?

Это строка buildin_owl2-rl.pie 361

// Part 1 of cls_oo
Id: cls_oo_1
     c <owl:oneOf>    x
     ------------------
     c <onto:_oneOf>  x                     [Context <onto:_cls_oo>]


// Part 2 of cls_oo
Id: cls_oo_2
     c  <onto:_oneOf>  x                    [Context <onto:_cls_oo>]
     x  <rdf:first>    y
     x  <rdf:rest>     z
    -------------------------------
     y  <rdf:type>     c
     c  <onto:_oneOf>  z                    [Context <onto:_cls_oo>][Constraint z != <rdf:nil>]

Некоторые случайные вещи, чтобы успокоить предложение AI AI от stackru "это всего лишь код, добавить объяснение"

1 ответ

Это правило реализует https://www.w3.org/TR/owl2-profiles/.

  • owl:oneOf является первоначальной собственностью; его объект - список.
  • onto:_oneOf это свойство реализации, используемое для развертывания списка. Это всегда в контексте реализации onto:_cls_oo, Тройки из этого контекста никогда не должны возвращаться.

Теперь представьте, что вы получили c owl:oneOf (y1 y2) что на самом деле означает

c owl:oneOf [rdf:first y1;
         rdf:rest [rdf:first y2;
                   rdf:rest rdf:nil]]

Первое правило копирует это в onto:_oneOf, Тогда второе правило производит

y1 rdf:type c.
c onto:_oneOf [rdf:first y2; 
               rdf:rest rdf:nil]]

Второе правило пинает снова и производит

y1 rdf:type c.
y2 rdf:type c.
c onto:_oneOf rdf:nil

Первые два - это то, что вы хотите сделать вывод, а третий - это остаток, скрытый в контексте реализации.

Вы поняли это? Если вы сделали, попробуйте доказать реализацию owl:propertyChainAxiom https://www.w3.org/TR/owl2-profiles/ правильно:

Id: prp_spo2_1
    p <owl:propertyChainAxiom> pc
    start pc last                   [Context <onto:_checkChain>]
    ----------------------------
    start p last

Id: prp_spo2_2
    pc <rdf:first> p
    pc <rdf:rest> t                 [Constraint t != <rdf:nil>]
    start p next
    next t last                     [Context <onto:_checkChain>]
    ----------------------------
    start pc last                   [Context <onto:_checkChain>]

Id: prp_spo2_3
    pc <rdf:first> p
    pc <rdf:rest> <rdf:nil>
    start p last
    ----------------------------
    start pc last                   [Context <onto:_checkChain>]
Другие вопросы по тегам