私はTopBraid Composer Free Editionを使ってオントロジーとスピンルールを構成しています。 TopBraid Composer Free Editionから保存されたRDFファイルを使用して、私のオントロジーをSesame OpenRDF Workbenchにロードしています。アクティブ/非アクティブの概念をスピンルールに追加する方法は?
私は、数百のルールのうちのどれを適用すべきかという点で動的なSPINルール(より正確には、SPINコンストラクタ)のアプリケーションを持っています。 SPINルールに「アクティブ」または「非アクティブ」という概念を追加する方法を見つけたいと思います。 WHERE
句の各ルールにチェックを追加して「アクティブな」ルールのみを追加します。たとえば、私はSPINの2つのサブプロパティを作成するとします:コンストラクタをmyPrefix:activeConstructor
とmyPrefix:inactiveConstuctor
と呼びます。
今、私は私のコンストラクタのWHERE句にフォームのトリプルを追加したい:
?thisConstructorURI a myPrefix:activeConstructor .
このアプローチは?thisConstuctorURI
を定義することにかかっています。 SPINは、ルールに関連付けられたクラスの現在のインスタンスに?this
を設定します。ルールそのもののURIに似たものがありますか?
私は現在、ルールは空白のノードにあると考えています。例えば、私のsxxiccのコンストラクタ:Pub7Proposalクラスごま/ OpenRDFワークベンチで見て13のコンストラクタのために、次のトリプルを持っている:
SUBJECT PREDICATE OBJECT
sxxicc:Pub7Proposal spin:constructor _:node1anlqmpiox14591
sxxicc:Pub7Proposal spin:constructor _:node1anlqmpiox14638
sxxicc:Pub7Proposal spin:constructor _:node1anlqmpiox14710
sxxicc:Pub7Proposal spin:constructor _:node1anlqmpiox14787
sxxicc:Pub7Proposal spin:constructor _:node1anlqmpiox14841
sxxicc:Pub7Proposal spin:constructor _:node1anlqmpiox14927
sxxicc:Pub7Proposal spin:constructor _:node1anlqmpiox15002
sxxicc:Pub7Proposal spin:constructor _:node1anlqmpiox15088
sxxicc:Pub7Proposal spin:constructor _:node1anlqmpiox15114
sxxicc:Pub7Proposal spin:constructor _:node1anlqmpiox15195
sxxicc:Pub7Proposal spin:constructor _:node1anlqmpiox15257
sxxicc:Pub7Proposal spin:constructor _:node1anlqmpiox15336
sxxicc:Pub7Proposal spin:constructor _:node1anlqmpiox15377
私は本当に必要なもの(と思う)へ
- ルールです(例えば
sxxicci:Pub7ProposalSecurityClassificationConsistencyCheck
)私はそれらを書く際のルールに名前を付けることができるように(私の?thisConstructorURI
アイデア) - 自分自身を参照することができるよう
これは、ルールを1つずつ(または任意の名前付きグループの単純な拡張によって)有効化/無効化できるようにするためのものです。これを行う方法に関するアイデア?
上記を満足することは、spin:ConstraintViolation
に含めることができる制約のために既にサポートされているspin:violationSource
と同様です。しかし、制約の代わりに意図的にコンストラクタを使用しているのは、違反があってもクラスのインスタンス化をブロックしたくないからです。
現在のSPIN標準と実装がこれをサポートしておらず、標準を拡張するためにサポート実装を変更する必要があるのではないかと心配しています。
私は少し進歩しましたが、それは厄介です。コンストラクタは、次のような一意のコメント文字列を持っていると仮定して自分自身を見つけることができます。 'sxxicc:Pub7Proposal sxxicc:activeSxxiPub7ComplianceCheckRule?thisRule。 ?thisRule rdfs:comment "主要な機能識別子は無効です。(511 02)" ^^ xsd:string .' –