Reguły wykorzystania podpisów w RIFie
Zostanie tutaj opisana koncepcja podpisów (ang. signatures), które są kluczowym mechanizmem umożliwiającym kontrolowanie kontekstu, w którym dane symbole mogą się pojawić. Należy pamiętać, że podpisy nie są częścią języka logiki w RIF, ponieważ nie pojawiają się w formułach.
Ponieważ bi_atomic < atomic, wbudowane formuły atomiczne są również zwykłymi formułami atomicznymi. Zazwyczaj większość formuł atomicznych jest zdefiniowana przez użytkownika i będą one miały podpis atomic, a nie bi_atomic.
f_n{(term ... term) => term}, p_n{(term ... term) => atomic}, and bi_n{(term ... term) => bi_atomic}
f_s1...sk{(s1->term ... sk->term) => term} oraz p_s1...sk{(s1->term ... sk->term) => atomic}
są to podpisy dla termów z nazwanymi argumentami oraz predykatów z nazwanymi argumentami.
Symbol ze zbioru Const może mieć tylko jeden zpodpisów: term, f_n, p_n, albo bi_n, gdzie n>=0, lub f_s1…sk{(s1→term … sk→term) ⇒ term}, p_s1…sk{(s1→term … sk→term) ⇒ atomic}, dla pewnych s1,…,sk należących do SigNames. Symbol ten nie może mieć podpisu atomic, bi_atomic, ponieważ tylko złożone termy mogą mieć taki podpis. A zatem, w RIF-BLD każdy stały symbol może być:
indywidualnym
predykatem o określonej arności, bądź określonymi nazwami argumentów
wbudowanym o określonej arności
funkcją o określonej arności
Niedopuszczalne jest, aby jeden symbol odgrywał więcej niż jedną rolę
Stałe symbole, które odpowiadają typom ze Schematów XML mają zawsze podpis term w RIF-BLD. Symbole typu rif:iri, rif:local, mogą mieć następujące podpisy: term, f_n, p_n, lub bi_n, for n = 0,1,….; albo f_s1…sk, p_s1…sk, dla pewnych nazw argumentów s1,…,sk należących do SigNames.
Wszystkie zmienne mają podpis term{ }.
Podpis równości ={(term term) ⇒ atomic, (term term) ⇒ term}. Oznacza to, że równość może porównywać tylko te termy, których podpisem jest term, nie może porównywać nazw predykatów, czy symboli funkcji.
Podpis frame, →, to →{(term term term) ⇒ atomic, (term term term) ⇒ term}.
Podpis membership, #, to #{(term term) ⇒ atomic, (term term) ⇒ term}.
Podpis podklasy relationship to ##{(term term) ⇒ atomic, (term term) ⇒ term}.
Powrót do dokumentu