2016-04-05 7 views
1

を使用してOWLでシーケンスを割り当てる私は私のオントロジーにこの公理を持っ門徒

:drug :givenAs (({dose1}) or ({dose2}) or ({dose3})) 
and (not ({dose4})) 

構文はタートルあたりとして正しくないですが、私は、あなたがポイントを得る願っています。

私は、dose1の後にdose2とdose3が続くと主張したいと思います。

私はModelling sequence order in OWL-DL ontologyをチェックアウトしましたが、私の場合は正確に解決していません。それは、私がこのクラスのクラスではなく個人だけを扱っているからです。

シーケンスをアサートするためのエレガントな方法は何ですか?

公理は、データレコードのエラーを特定するためのものです。例えば、私が示唆したように、私はhasNextプロパティを試してみました

UPDATE

:drug :givenAs :dose1 .なしがあります場合は、エラーを指摘してオントロジーをしたいと思います。私はそのプロパティを使って個人をリンクすることができます。

Class: SequenceItem 
    EquivalentTo: 
     hasNext only SequenceItem 

私はクラスを持っているし、適切であれば、それを避けるためにしたくない。しかし、私はこれは私のコンテキストに適用されるかわかりません。シーケンスはどのように割り当てられますか?

更新2

上記のようにクラス公理を追加しました。推論者はエラーを検出しません。しかし、彼らはまた、dose2がdose1に先行する誤った記録を特定しない。私はクラスDoseと等価であると主張:

Dose 
and hasNext only Dose 

問題、私が思うに、私はdose2がdose1前に可能ではないと何dose3はdose2前など不可能であることをどこにもアサートされませんされています。

答えて

1

hasNextプロパティala Modelling sequence order in OWL-DL ontologyの追加も同様に機能します。個人のhasNextをアサートするだけです(前項参照)。

順序を指定する別の方法は、RDFリストを使用するものです。つまり、(:dose1 ;dose2 :dose3)です。リストは順序付けられた列挙型リストであり、rdf:first/rdf:restを使用して要素を順番に照会することができます。

最後のアイデアは、注文プロパティを指定することです。 hasList溶液と同様、sequenceNum性は例えば、用量オブジェクトに取り付け追加することができる:

:dose1 :sequenceNum 1 . 
:dose1 :sequenceNum 2 . 
:dose1 :sequenceNum 3 . 

そして他の前に発生するかを指定する番号を使用します。

関連する問題