JP6067356B2 - 情報の検証 - Google Patents
情報の検証 Download PDFInfo
- Publication number
- JP6067356B2 JP6067356B2 JP2012268180A JP2012268180A JP6067356B2 JP 6067356 B2 JP6067356 B2 JP 6067356B2 JP 2012268180 A JP2012268180 A JP 2012268180A JP 2012268180 A JP2012268180 A JP 2012268180A JP 6067356 B2 JP6067356 B2 JP 6067356B2
- Authority
- JP
- Japan
- Prior art keywords
- fact
- automaton
- state
- verification
- facts
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000010200 validation analysis Methods 0.000 title claims description 78
- 238000012795 verification Methods 0.000 claims description 159
- 230000007704 transition Effects 0.000 claims description 83
- 238000000034 method Methods 0.000 claims description 78
- 238000004422 calculation algorithm Methods 0.000 claims description 74
- 230000006870 function Effects 0.000 claims description 67
- 230000010354 integration Effects 0.000 claims description 63
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 40
- 230000008569 process Effects 0.000 description 36
- 238000013459 approach Methods 0.000 description 23
- 238000012545 processing Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 12
- 238000010276 construction Methods 0.000 description 10
- 238000004519 manufacturing process Methods 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- 230000006698 induction Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 239000000284 extract Substances 0.000 description 8
- 239000000370 acceptor Substances 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 229910052739 hydrogen Inorganic materials 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 1
- 235000014552 Cassia tora Nutrition 0.000 description 1
- 244000201986 Cassia tora Species 0.000 description 1
- 241001480504 Mammalian orthoreovirus 1 Species 0.000 description 1
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 description 1
- 240000008042 Zea mays Species 0.000 description 1
- 235000005824 Zea mays ssp. parviglumis Nutrition 0.000 description 1
- 235000002017 Zea mays subsp mays Nutrition 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 235000005822 corn Nutrition 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Description
p(q1, q2, ..., qi)
system_discx(name; description; systenURI)
このファクトは、3つの引数をとるので、そのアリティはk=3、つまりsystem3である。ファクトがデータベースに格納されると、これは、外延データベース(EDB)と称される。これは、統合モデルを表現する方法である。
h:- p1Λp2Λ...Λpi
この規則は、p1とp2と...とpiが真である場合に、hは真であることを意味する。知識ベースに規則を格納したものは、演繹データベース(IDB)と称される。
1. 必要なすべての引き数の存在、
2. 引数に対して定義されている可能性のある制限への適合性(例えば、システムの名前の長さまたはパターン)、
3. ファクト同士の間のすべての依存関係を解決する可能性(例えば、それぞれのrunsOnファクトに対する有効なシステムおよびホストファクト)。
ファクト間の依存関係を解決するときに、ファクトを一意的に識別する1つのキー引数がなければならない。この引数は、ファクトのURIである。一般に、「ユニフォームリソースアイデンティファイア(URI)は、抽象的または物理的リソースを識別するコンパクトな文字の列である。」URIはリソースを識別するものなので、これは、ファクトが依存する対応するファクトが見つかることを保証する。その結果、ファクトの大部分は、そのURIをプライマリーキーとして含む1つの引数を有し、これはそれらのファクトを一意的に識別するために使用される。他のファクトも、他のファクトのURIを含むが、これらのURIは、それらが依存するファクトへの参照として使用される。例えば、システムファクトの検証は、以下の調査を伴う。
1. システムは名前およびURIを有するか?名前は、クラシカルユーザーインターフェース上に表示され、URIは、ファクトを識別し、依存関係を解決するために必要である。
2. 引数の名前が少なくとも1つあるが、長さ255文字以下であるか?
3. systemファクトと同じURIを有する有効なdataファクトがあるか?
その結果、これら3つの要件が満たされた場合かつその場合に限り、systemファクトは有効である。
Σ={a,b,c,...,z}
は、すべて小文字であることを表す。さらに、文字列とは、いくつかのアルファベットの記号の有限列のことである。文字列がゼロ個の記号からなる場合、これは、空文字列(ε)と称される。文字列wを形成する記号の量は、文字列の長さと称され、|w|で表される。例えば、空文字列|ε|の長さ=0である。任意のアルファベットΣについて、特定の長さkのすべての文字列の集合は、Σkと表される。任意のアルファベットΣについて、長さ0のすべての文字列の集合は、Σ0={ε}である。これは、長さ0の唯一の文字列が、空文字列εであることを意味する。例えば小文字のアルファベットでは、長さ2の文字列の集合は、Σ2={aa, ab, ac, ..., zz}である。アルファベットΣ上のすべての文字列の集合は、Σ*と表され、これは、
Σ*=Σ0∨Σ1∨....
と定義される。
特定のアルファベットΣに対するあるΣ*から選択されたすべての文字列の集合は、言語とも称される。いくつかのアルファベットΣについて、Lは、
L⊆Σ*
であれば、Σ上の言語である。
言語の唯一の制約条件は、すべてのアルファベットが有限であるということである。これらが有限の数の文字列を有している可能性があるとしても、言語は、1つの固定された有限のアルファベット内にある文字列のみを含むように制限される。与えられた文字列が与えられた言語の要素であるかどうかの決定は、問題と称される。ファクト検証の場合、問題は、ファクトが有効であるかどうか、つまり、それが有効なファクトのみからなる言語の要素であるかどうかを決定することである。
状態の有限集合(Q)
入力記号の有限集合(Σ)
遷移関数(δ):状態qおよび入力記号aを引数としてとり、状態pを返す関数である。したがって、δ(q,a)=pは、qからpへのaとラベル付けされた弧を記述する
開始状態(q0): q0∈Qを満たす
有限もしくは受理状態の集合(F): F⊆Qを満たす
DFA=(Q,Σ,δ,q0,F)
という記法を用いる。
オートマトンを表現するために他の方法もある。ある記法は、遷移図であり、これは、Qにおけるそれぞれの状態について1つの節点を含むグラフである。さらに、Qに含まれるそれぞれの状態qとEに含まれるそれぞれの入力記号について、aとラベル付けられた、節点qから節点pへの弧がある。さらに、どの状態からの起点をも有しない、オートマトンの開始状態q0に入る1つの矢印がある。受理状態を表現する節点は、二重円でマークされ、Fに入っていない(したがって、非受理状態である)すべての状態は、単一の円でマークされる。遷移図の例が、図10に示されている。図10は、決定性有限オートマトン(DFA)の遷移図1000の概略を示す図である。DFAは、3つの状態を有する。入力に応じて、これは、利用可能な遷移を使用して、受理状態か、または非受理状態に進む。
DFA=({q0,q1,q2},Σ,δ,q0,{q2})
の記法でも表される。
DFAのアルファベットは、Σ={a,a}であり、これは、例えば、入力がaであるか、または非a(¬a)であるかのいずれかで区別される。DFAに対する遷移図において、この状態から出る、アルファベットΣからのそれぞれの入力記号に対する1つの弧があることに留意されたい。
図12は、message_flow_dscxファクト1202の例示的な解決された依存関係の抜粋1200の図である。図12は、message_flow_discxファクト1202の検証に関連しうるファクトを示している(矢印は、「依存している」ことを意味する)。ファクトは、一方のファクトまたは別のファクトに依存することが可能である。
S1=Soperation∨Sbinding∨Sincoming∨Soutgoing∨Ssystem∨Sdata
S2 = Smessage_flow∨Sincoming∨Soutgoing∨Ssystem∨Sdata
S3=Shost∨Sdata
その結果、S1、S2、およびS3は、同じ述語を持つファクトのみを含むすべてのファクト集合が前に複製されている限り互いに独立して検証されうる。
FVA= (Q';Σ';δ'; q0'; F')
として示される。
しかし、この定義のいくつかの部分は、正規言語を受理する標準的な決定性有限オートマトンとは異なる仕方で解釈されうる。
Q':状態の集合。オートマトンは、引数の検証前にこれらの状態のうちの1つの状態にある。それ以降、Q'からの別の状態の前または別の状態にある場合と同じであるものとしてよい。
Σ':入力記号の集合は、有効または無効のいずれかであるものとしてよい、ファクトの引数の集合である。したがって、Σ'は、その引数が順序集合の要素であるか、またはより正確にはリストであるという制限を持つ1つのファクトとして解釈されうる。
δ':遷移関数は、1つの引数の検証を表す、つまり、これは、入力引数が有効であるかないかを判定する。
q0':ファクト検証オートマトンについては、開始状態は、オートマトンが第1の引数を検証することを開始する前に入っている状態である。
F':受理状態の集合は、すべての引数の検証に成功した後にオートマトンが入る状態である、ただ1つの状態を含む。したがって、検証の成功は、オートマトンがファクトを検証した後に受理状態に入っているかどうかを調査することによって判定されうる。qnを、ファクト検証の後にオートマトンが入っている状態とすると、
qn∈F'→ファクトは有効であり、
qn∈/ F'→ファクトは有効でない。
オートマトンの構成は、オートマトンへの正規表現(したがって正規言語)の変換の帰納的証明を使用して行われる。検証される知識は、必ずしもテキスト文字列ではない。むしろ、複合ファクトによって表され(例えば、Datalogに符号化され)うるものであり、その有効性は、人間によって指定されうるモデルによって定義される。したがって、このアプローチは、場合によっては、より強力な言語に拡張されなければならない。
Vは、非終端記号の集合である(つまり、ある種の規則を使用して終端記号によって置き換えられうる変数)。
Σは、それ以上置き換えることができない終端記号のアルファベットである。これらは、言語の基礎である。
Pは、左辺と右辺とからなる生成規則の有限集合である。左辺は、非終端記号からなり、右辺は、終端記号または非終端記号または両方の組み合わせからなるものとしてよい。生成規則は、数式と似ており、右辺は、式の左辺に代入される。一般に、l→rと表記される。
Sは、英文法の開始記号である。文法の定義は、この記号から開始する。他のすべての記号については、生成規則を使用して非終端記号を終端記号で次々に置き換えることができるときに横断してゆくことによって到達する。
上で述べたように、4種類の文法がある。
0型:無制限文法:この型の文法は、上記の定義にかかるすべての文法を含む。
1型:文脈依存文法:この型の文法は、0型文法でもある。しかし、それぞれの生成規則l→rは、条件|l|≦|r|を満たさなければならない。その結果、生成規則を適用した後、導出される文字列は、前のものよりも短くはなりえない。
2型:文脈自由文法:2型の文法は、文脈依存であるが、どの生成規則の左辺も、ただ1つの非終端記号で成り立っていなければならない。したがって、すべての生成規則l→rについて、l∈Vが成り立つ。1型および2型の文法は、コンパイラの設計および製作に使用される。さらに、大部分のプログラミング言語の構文は、文脈自由文法によって記述することができる。
3型:正規文法:すべての正規文法は、文脈自由文法である。さらに、それぞれの生成規則の左辺は、非終端記号から成り立っていなければならない。しかし、生成規則の右辺は、空文字列εまたはΣからの終端記号から成り立っていなければならず、この後にVからの非終端記号が続く場合も続かない場合もある。したがって、右線形正規文法のそれぞれの生成規則1→rの形は、
l∈Vかつr∈{ε}∪Σ∪ΣV
で形式的に特徴付けられる。
一般に、プログラミング言語の語彙構造は、3型文法を使用して定義することができる。その結果、Lnが、n型の文法によって構成される言語を記述する場合、これら4種類の文法の関係は
L0⊃L1⊃L2⊃L3
と記述することができる。
言語の能力は、0型から3型へと減少する。したがって、2型言語(文脈自由文法の言語)は、3型文法を有する正規言語の拡張である。しかし、オートマトンの構成のためには、これが、正規言語のみを受理すると仮定されるが、それは引数の内容が単純な文字列であるからである。しかしながら、構成されたオートマトンは、ファクトの依存関係を解決するためにいくつかの高度な機能を有している場合がある。
NFA=(Q;Σ;δ;q0;F)
である。
DFAの状態の集合QDは、QNの部分集合の集合である。QNがn個の状態を有する場合、QDは2n個の状態を有する。しかし、アクセス不可能な状態が「ゴミになっている」可能性があるので、その開始状態から到達できない状態がQD内にある。これは、遷移図には示されないことを意味する。その結果、QD内の状態量は、2nよりかなり小さくなることがある。
受理状態の集合FDは、DFAの1つまたは複数の、ただし、少なくはない、状態を含むNFAの部分集合の集合である。したがって、FDは、S∩FN≠φとなるようなQNの部分集合Sの集合である。
QNの部分集合および与えられた引数aからδDを計算するために、部分集合からの1つの状態がaとラベル付けされている弧上で入るすべての状態の和集合を取る。より形式的には、それぞれの部分集合S_QNについて、またΣ内のそれぞれの入力記号について、
部分集合構成は、通常、遷移表を使用して行われる。しかし、これは時間が非常にかかるように思われるので、「遅延評価」と呼ぶアプローチを使用し、部分集合に対して実行することができる。
1.NFAの開始状態のみからなり、開始時点ではアクセス可能である単元集合がある。
2.それぞれの入力記号aについてアクセス可能な状態の集合Sを決定した後、状態の集合δD(S; a)を計算する。これらの状態も、すべての同様にアクセス可能である。
ε-非決定性有限オートマトン(ε-NFA)は、上で説明されているNFAと同様にして
ε-NFA = (Q;Σ;δ;q0;F)
と定義される。
定義のすべての構成要素は、2つの引数をとる関数となっている、δを除き、NFAと同じように解釈することができる。最初に、Qから、このオートマトンの「元になっている」状態である、1つの状態を取り出す。第2に、アルファベットからの入力記号、または記号Σである、S∪{ε}の要素をとる。この定義では、空文字列であるεは、アルファベットΣの要素ではない。
基底:状態qは、ENCLOSE(q)内にある。
帰納ステップ:状態pが、ENCLOSE(q)内にあり、pからεとラベル付けされた別の状態rへの弧がある場合、rはENCLOSE(q)内にある。したがって、ENCLOSE(q)は、δ(p,ε)内のすべての状態も含む。
定理:ファクトを検証するε-NFAが存在する。
証明:この帰納法により、ファクトを検証することができるε-NFAが存在することを証明する。このε-NFAは、以下の特性を有する。
1. ちょうど1つの受理状態。
2. 初期状態に入る弧はない。
3. 受理状態から出る弧はない。
それぞれのファクトは少なくとも1つの引数を有し、他のファクトに応じて引数のないファクトは少なくとも1つあると仮定して、オートマトンの入力に対する構造帰納法によって証明を行う。
n=1:ファクトが引数を1つしか有しない場合、この引数は検証される。図14の点線の辺は、有効な引数の入力上の状態1402から1404への遷移を表す。これは、ただ1つの引数であるので、オートマトンは、ε-遷移を使用してその最終状態1406に自然に移る。その一方、引数が無効である場合、オートマトンは、引数検証ボックスの第1の状態1402内にとどまる。
n>1:第1の引数について、オートマトンは第1の場合のように振る舞う。しかし、第1の引数が検証された後、オートマトンは、e-遷移を使用して引数検証ボックス内の第1の状態1402に進み、次の引数を検証する。
基底:オートマトンが検証を開始していなかった場合、つまり、検証すべきファクトがない場合、これは、それがたった今入っている状態である、状態qにとどまり、
帰納ステップ:n>=1、a1, ::,an-1,anがファクトの引数であるとして、ファクトf(a1,.::,an-1,an)がある場合:
証明:E=(QE;f,δE;a;FE)をε-NFAとし、D=(QD;f,δD;a;FD)をqDが部分集合構成によって生成されるDFAの開始状態である場合とする。DFAに対してL=L(D)、ε-NFAに対してL=L(E)であると仮定すると、
L(D)=L(E)
であることを示すことができる。
記号aは、ε-NFAの開始状態を表していることに留意されたい。fが、少なくとも1つの引数aiからなり、この引数が、有効である(avalidとして表される)か、または無効である(ainvalid)かのいずれかとすることができると仮定すると、オートマトンの等価性は、引数の量に関する帰納法によって示される。
基底:最初に、1つの単一引数を持つファクトの入力を仮定する。引数の有効性に応じて、検証は成功か、そうでないかのいずれかとなる。
1. 引数が有効である場合、ε-NFAは、b(ε-遷移を使用してaから進んだ先)からcに進む。そこから、ε-遷移を使用して、bおよびdに進むこともできる。ただ1つの入力引数があると仮定されているので、ε-NFAは、dにおいて有効なファクトの検証を終了する。DFAは、有効な引数の入力上で{b,c,d}に進む。両方のオートマトンが検証を終了する際に入っている状態は、両方とも受理状態であり、したがって、検証は成功である。
2. しかし、入力引数が無効である場合、ε-NFAは、ε-遷移を使用してaから進んだ先である、非受理状態bにとどまっている。DFAは、{b}に進む。両方のオートマトンが非受理状態において検証を終了し、したがって、検証は不成功であったということであり、ファクトは無効である。
両方の場合において、両方のオートマトンの検証の結果は同じである。したがって、単一引数を持つファクトの入力について、これらのオートマトンは等価である。
帰納ステップ:複数の引数を持つファクトの入力を仮定する。ファクトの有効な引数と無効な引数の異なる群が生じうる。
1. 第1の引数は無効であり、多数の有効なまたは無効な引数が続く。この場合、続く引数が有効であろうとなかろうと問題にならない。ε-NFAは、中で動けなくなり、DFAが{b}にとどまっている間、ファクトの検証を停止する。
2. 第1の引数は有効であり、1つまたは複数の有効な引数が続く。ファクトのすべての引数が有効である場合、ε-NFAは、常に、引数検証にbからcへの遷移を使用する。検証すべき引数がまだある限り、cからbに戻るε-遷移を使用する。もう引数がなければ、自然に、受理状態である、dに進む。DFAは、任意の数の有効な引数の入力上で、受理状態である{b,c,d}に進む。
3. 第1の引数は有効であり、1つの無効な引数が続く。この場合、ε-NFAは、非受理状態bにとどまるが、DFAは、非受理状態{b}にとどまる。
4. 第1の引数は有効であり、第2の引数は無効であり、次の引数は、有効または無効のいずれかである。これが生じた場合、両方のオートマトンは、3で説明されているように振る舞う。
両方のオートマトンが複数の引数を含むファクトのすべての場合において同じように振る舞うので、これらは等価である。その結果、DFAは、ファクト検証に使用することができる。
引数検証:この状態の遷移関数において、引数は明確に検証され、それが指定されているかどうかをチェックする。引数が空文字列を含む場合、遷移関数は、オートマトンがその時点に入っている状態を返す。そうでない場合、次の状態を返す。
スキップ引数検証:この遷移関数は、引数があることを単に認識するだけであり、それを検証しない。引数が空文字列であろうとなかろうと問題にならない。したがって、この遷移関数は、常に、次の状態を返す。
特定のファクトの特定の引数の検証:この遷移関数では、ファクト特有の、また引数特有の検証が実装される。例えば、255文字未満の空でない文字列として定義される、systemファクトの名前を検証するだけの1つの遷移関数がある。
エラー状態:この状態は、任意の種類の予想外の入力を表す。例えば、与えられたファクトに対するファクトモデルを見つけられない場合、オートマトンの開始状態は、この状態となる。ファクトに、対応するモデルよりも多い引数がある場合、この状態は、オートマトンの最後の状態である。いずれの場合も、オートマトンがこの状態に入ると、ファクトはもはや有効とはなりえない。その結果、この状態の遷移関数は、任意の入力上で同じ状態を返す。
ファクト検証:この遷移関数は、実際のファクトが依存するすべてのファクトを検証しなければならないので最も高度な関数である。この機能について、以下でさらに詳しく説明する。しかし、オートマトンの遷移関数に至ったときには、検証オートマトンがより強力な遷移関数を有するので標準のDFAとはいくつか異なる点がある。これは、オートマトンが受理する言語の、正規言語から2型言語への拡張の結果である。その結果、検証オートマトンの遷移関数は、以下のことを実行しなければならない複雑な関数である。
1. 引数が空でない文字列であるかどうかをチェックする。
2. 引数の検証をスキップして、何も実行しない。
3. ファクト特有の、および引数特有の何らかの検証を行う(例えば、システム名が255個以下の文字からなる空でない文字列かどうかをチェックする)。
4. ファクトのURIを検証する、つまり、対応する下位レベルのファクトが存在するかどうかをチェックする。
5. すべての場合において、検証が成功した場合には検証オートマトンの次の状態を返し(以下のアルゴリズム4を参照)、上で述べた検証のどれかが失敗した場合にはエラー状態を返す。
遷移1から3までは引数文字列の長さに関する単純な検査であるが、遷移4は、別のFVAのコールを含むのでより複雑である。一般に、遷移関数およびその状態は、Java(登録商標)で実装される。したがって、変数宣言、条件、およびループなど、あらゆる種類のJava(登録商標)構成体を使用することが可能であるだけでなく、他のFVA、RFC、またはSAPシステムへのアクセスのコールを使用することも可能である。これと、Java(登録商標)が文脈自由言語であるというファクトから、結果として、オートマトンは文脈自由という性質を有する。しかし、これは、それでも、検証の終了を保証するために、使用されるJava(登録商標)構成体の数が、変数宣言、条件、および有限ループに限られているので正規言語を受理するDFAである。他の構成体は、終了しない場合があるので、使用すべきでない。例えば、RFCは、リモートロケーション上でフリーズする可能性がある。したがって、応答がなくなり、オートマトンは遷移関数内にとどまり、したがって実際の状態にとどまる。ファクトは、RFCが失敗したというだけで、正しい可能性があるとしても、拒否されることもありうる。したがって、この実装には、そのような「安全でない」構成体はない。この制限により、それぞれのオートマトンのコールが終了することが保証される。その結果、遷移関数における別のオートマトンのコールも、ファクトモデルが正しく構成されている、つまり、異なるファクトモデル間に循環参照がない限り、クリティカルでない。
ValidationFactSet⊇Context
例えば、文脈Cが、それぞれが対応するdataファクト(DSおよびDH)を有するsystemファクト(S)およびhostファクト(H)を伴うruns_onファクトRからなるファクト集合であるものとすると、次のようになる。
C={R, S, H, DS, DH}
この文脈の部分集合である、ファクト集合S1は、
S1 = {S}
であるものとしてよい。
すべてのファクトの引数が有効である場合、ファクト集合S1も有効であるが、それは、systemファクトについては、文脈内に対応するdataファクトがあるからである。次に、別の部分集合S2を
S2= {R, I}
とする。
ただし、Iは、インカミング構成ファクトである。ファクト集合S2は、すべてのファクトの引数が有効であるとしても、有効にはならないが、それは、インカミング構成のconfrgURIとマッチするdataファクトDIがないからである。最後のファクト集合S3を
S3={R,S,H,DS,DH)=C
とする。
ファクト集合S3は、ファクト集合それ自体の中に対応する下位レベルのファクトがあるので、有効となる。したがって、オートマトンは、文脈内のファクトの集合を検証することができるだけでなく、文脈全体を検証することもできる。
ファクトが以前に無効であるとマークされていない。
ファクトと同じ述語を有するファクトモデルがある。
ファクトは、少なくとも1つの引数を有する。
ファクトのアリティは、引数の数に等しい。
このエラーチェックは、アルゴリズム3の5行目に示されている。最後のステップは、オートマトンの開始状態を決定し(8行目)、設定する(9行目)ことである。開始状態の決定は、アルゴリズム4に示されている。
<ファクト述語>[<キーインデックス>]:<引数リスト>
キーインデックスは、ファクトを一意的に識別する引数リスト内の引数のインデックスを示す整数値である。したがって、ほとんどの場合において、これはURIである。キーインデックスは、systemURlとhostURlの両方の引数によってしか一意的に識別されえない、単一のキー引数を有しないファクト、例えばruns_onファクトがあるときにオプション値である。ファクトのキーインデックスは、ブラケット([])で囲んで書かれる。さらに、引数リスト内の引数は、カンマ(,)によって区切られる。1つの引数の定義を以下に示す。
<引数名>({<引数が依存するファクト述語>},<基数>)
引数が複数のファクトに依存する場合、下位レベルのファクトの述語は、カンマ(,)で区切られる。1つのファクトの定義の後に、ファクト定義の終わりをマークするドット(.)がある。次いで、次のファクトを、次の行で定義することができる。カンマを含めるには、シャープ記号(#)を使用する。定義ファイルからの抜粋が、リスティング1に示されている。
Validate<ファクト述語><引数名>
名前は、リテラル「Validate」から始まり、その後にファクト述語とこの状態に対する引数の名前が続く。例えば、システム名を検証する状態に対する名前は、以下のようになる。
ValidateSystem_discxName
ファクト述語および引数名が、定義ファイル内で定義されたものであることが非常に重要である。上の例では、ファクト述語および引数名の最初の文字は、大文字である。その理由は、読みやすさである。しかし、検証フレームワークは、小文字の述語および名前も認識する。
1. ファクトの集合の検証の開始。
2. ファクトの検証の開始。
3. 引数の検証の開始。
4. 引数の検証の終了。
5. ファクトの検証の終了。
6. ファクトの集合の検証の終了。
7. 例外の発生。
上で述べたイベントのどれかが発生した場合、オートマトンは、Visitor設計パターンの実装であり、イベントをログに記録する、ロガーをコールする。ロガーは、オートマトンへの参照を有するので、ユーザーが出力を望む仕方で有益なログを作成するために必要なすべての情報にアクセスすることができる。
system_discx : Could not find a valid data_discx with the same key systemURI : corn .sap .bnm .nd. discovery .ale . facts . internal . AleFactsProviderHXPCLNT001 ).
オートマトンが、同じURIを持つdataファクトを見つけることができなかったことを示している。これは、検証の失敗の理由である。ここでもまた、ユーザーは、自分の間違いに気づき、dataファクトのURIを変更してsystemファクトとマッチするようにした。ここでもまた、ユーザーは、オートマトンにファクトを検証させる。グラフ出力が、図23に示されている。図23は、ホストURIが指定されていないruns_onファクト2302に対する例示的なオートマトンのグラフ出力2300である。runs_onファクト2302のsystemURlとマッチするsystemファクト2304を検証して成功した後、オートマトンは、hostURIを検証することができなかったが、これは実際には指定されていなかった。したがって、オートマトンは、(非最終的)状態ValidateFact内にとどまる。グラフ内の有向辺を辿り、オートマトンは、runs_onファクト2302の検証を開始した。次に、systemファクトおよびその対応するdataファクトを検証するために別のオートマトンをコールした。これらの検証が成功したので、制御権は主オートマトンに返され、最終的に、hostURIを検証することを試みた。明らかに、オートマトンはこの状態で動けなくなる。多分、テキスト出力は、hostURIの問題が何であったかを示している。完全な出力が、リスティング8に示されている。
runs_on_discx: No hostURl specified.
この出力を使用して、ユーザーは、hostRUIをruns_onファクトに追加することによって自分の定義ファイルを変更した。ユーザーがそれを行うときに、ホストファクトをまだ作成していないことに気づいた。再び同じ間違いをするのを避けるために、ユーザーは、ホストファクトおよびその対応するdataファクトも作成する。次いで、定義ファイルは、リスティング9に示されているような形である。リスティング9は、有効なruns_onファクトに対する例示的な定義ファイルである。対応するシステムおよびホストファクトがそれぞれマッチするdataファクトを有しているruns_onファクトがある。
Validation Successful
すべてのファクトが有効であるので、ファクト集合の検証は成功である。したがって、ユーザーは、自分が作成したファクトを注入することができた。
102 ネットワーク/カスタマーランドスケープレイヤ
104 ネットワークソースレイヤ
106 非武装地帯(DMZ)
108 ネットワーク統合レイヤ
109 リンクデータエンジン
110 ネットワーク統合モデルレイヤ
112 ビジネスグラフユーザーインターフェース/アプリケーション
114 「データを発見する」コンポーネント
116 「データを抽出する」コンポーネント
118 「ファクトに対してデータ分析を処理する」コンポーネント
120 「分析ファクトを公開する」コンポーネント
121 ネットワーク統合メタモデル(NIMM)リソースグラフ
122 NIMMモデル
124 推論アルゴリズム
140 命令
Claims (19)
- 知識検証のためのコンピュータ実装方法であって、
検証に対するファクトを識別する段階と、
検証に対する前記ファクトを表すセマンティックモデルを作成する段階と、
前記ファクトに関連付けられている文脈を識別する段階であって、検証すべき前記ファクトは、前記文脈の部分集合である、段階と、
前記識別された文脈に少なくとも部分的に基づきオートマトンを作成する段階と、
前記オートマトンを使用して前記ファクトを検証する段階とを含むコンピュータ実装方法。 - 統合モデルを識別する段階をさらに含み、前記統合モデルは会社内および会社間のビジネス取引ネットワークに関する情報を含み、検証に対する前記ファクトは前記統合モデルに関連付けられる請求項1に記載のコンピュータ実装方法。
- 前記オートマトンは、決定性有限オートマトンである請求項1に記載のコンピュータ実装方法。
- 前記決定性有限オートマトンは、ε-非決定性有限オートマトンから導出される請求項3に記載のコンピュータ実装方法。
- 前記決定性有限オートマトンは、状態、入力記号、遷移関数、開始状態、および最終状態のうちの1つまたは複数によって定義される請求項3に記載のコンピュータ実装方法。
- 前記最終状態は受理状態であり、前記オートマトンは前記ファクトの検証に成功した後前記受理状態に入る請求項5に記載のコンピュータ実装方法。
- 前記オートマトンは、前記セマンティックモデルに少なくとも部分的に基づき生成される請求項1に記載のコンピュータ実装方法。
- 前記セマンティックモデルは、前記ファクトに関連付けられているファクト依存関係をさらに表す請求項1に記載のコンピュータ実装方法。
- 前記識別された文脈に少なくとも部分的に基づき前記オートマトンを生成する段階は、モデルエンティティのそれぞれのインスタンスについてオートマトンを生成する段階を含む請求項1に記載のコンピュータ実装方法。
- 前記ファクトは、Datalogファクトである請求項1に記載のコンピュータ実装方法。
- 前記ファクトは、ファクト、知識、またはデータのうちの1つまたは複数である請求項1に記載のコンピュータ実装方法。
- エラー状態を識別する実行時グラフ出力をもたらす段階をさらに含む請求項1に記載のコンピュータ実装方法。
- エラーを識別する実行時テキストログ出力をもたらす段階をさらに含む請求項1に記載のコンピュータ実装方法。
- 前記オートマトンを使用して前記ファクトを検証する段階は、構造もしくは構造化データのコンテンツのうちの1つまたは複数を検証する段階を含む請求項1に記載のコンピュータ実装方法。
- ドメイン固有言語が、検証プログラムを指定するためにプログラミングモデルに使用される請求項1に記載のコンピュータ実装方法。
- 検証プログラムが、前記セマンティックモデルから生成され、前記セマンティックモデルはドメイン固有言語で記述され、前記オートマトンは、前記セマンティックモデルから実行時に生成される請求項1に記載のコンピュータ実装方法。
- 前記オートマトンは、インテリジェントアルゴリズムによって自動的に生成される請求項16に記載のコンピュータ実装方法。
- 前記ファクトは、統合モデル内のファクトであり、前記統合モデルは前記オートマトンによる検証を受ける請求項1に記載のコンピュータ実装方法。
- 有形の非一時的な媒体上に格納され、命令を実行するように動作可能である、知識検証のためのコンピュータプログラムであって、前記命令は、
検証に対するファクトを識別する段階と、
検証に対する前記ファクトを表すセマンティックモデルを作成する段階と、
前記ファクトに関連付けられている文脈を識別する段階であって、検証すべき前記ファクトは、前記文脈の部分集合である、段階と、
前記識別された文脈に少なくとも部分的に基づきオートマトンを作成する段階と、
前記オートマトンを使用して前記ファクトを検証する段階とを含む、知識検証のためのコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/315,041 | 2011-12-08 | ||
US13/315,041 US8805769B2 (en) | 2011-12-08 | 2011-12-08 | Information validation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013120605A JP2013120605A (ja) | 2013-06-17 |
JP6067356B2 true JP6067356B2 (ja) | 2017-01-25 |
Family
ID=47562913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012268180A Active JP6067356B2 (ja) | 2011-12-08 | 2012-12-07 | 情報の検証 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8805769B2 (ja) |
EP (1) | EP2613283A3 (ja) |
JP (1) | JP6067356B2 (ja) |
CN (1) | CN103218288B (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9275333B2 (en) * | 2012-05-10 | 2016-03-01 | Eugene S. Santos | Augmented knowledge base and reasoning with uncertainties and/or incompleteness |
US10332010B2 (en) | 2013-02-19 | 2019-06-25 | Business Objects Software Ltd. | System and method for automatically suggesting rules for data stored in a table |
US10740396B2 (en) | 2013-05-24 | 2020-08-11 | Sap Se | Representing enterprise data in a knowledge graph |
US9405793B2 (en) | 2013-06-12 | 2016-08-02 | Sap Se | Native language support for intra-and interlinked data collections using a mesh framework |
US9158599B2 (en) | 2013-06-27 | 2015-10-13 | Sap Se | Programming framework for applications |
US11093521B2 (en) | 2013-06-27 | 2021-08-17 | Sap Se | Just-in-time data quality assessment for best record creation |
US9311429B2 (en) | 2013-07-23 | 2016-04-12 | Sap Se | Canonical data model for iterative effort reduction in business-to-business schema integration |
US11330024B2 (en) | 2014-01-29 | 2022-05-10 | Ebay Inc. | Personalized content sharing platform |
US11176475B1 (en) | 2014-03-11 | 2021-11-16 | Applied Underwriters, Inc. | Artificial intelligence system for training a classifier |
US11809434B1 (en) | 2014-03-11 | 2023-11-07 | Applied Underwriters, Inc. | Semantic analysis system for ranking search results |
US9971973B1 (en) | 2016-05-23 | 2018-05-15 | Applied Underwriters, Inc. | Artificial intelligence system for training a classifier |
EP2963599A1 (en) * | 2014-06-30 | 2016-01-06 | Siemens Aktiengesellschaft | Managing execution of a manufacturing order |
US10564937B2 (en) | 2014-07-18 | 2020-02-18 | Sap Se | Relational logic integration |
US9406040B2 (en) | 2014-08-13 | 2016-08-02 | Sap Se | Classification and modelling of exception types for integration middleware systems |
US9652787B2 (en) * | 2014-09-29 | 2017-05-16 | Ebay Inc. | Generative grammar models for effective promotion and advertising |
CN107113183B (zh) * | 2014-11-14 | 2021-08-10 | 比特诺比有限责任公司 | 大数据的受控共享的系统和方法 |
US9483329B2 (en) | 2015-02-09 | 2016-11-01 | Sap Se | Categorizing and modeling integration adapters |
US10419586B2 (en) | 2015-03-23 | 2019-09-17 | Sap Se | Data-centric integration modeling |
US9823906B2 (en) | 2016-03-31 | 2017-11-21 | Sap Se | Complementary model-driven and textual development using enforced formatting constraints |
CN107783758B (zh) * | 2016-08-25 | 2019-01-18 | 北京航空航天大学 | 一种智能合约工程方法 |
CN107450922B (zh) * | 2017-07-27 | 2020-01-03 | 武汉斗鱼网络科技有限公司 | 安卓中弹幕事件自动注册的方法、存储介质、设备及系统 |
US10747584B2 (en) | 2018-08-20 | 2020-08-18 | Sap Se | Security-aware partitioning of processes |
CN110516697B (zh) * | 2019-07-15 | 2021-08-31 | 清华大学 | 基于证据图聚合与推理的声明验证方法及系统 |
US11121905B2 (en) | 2019-08-15 | 2021-09-14 | Forcepoint Llc | Managing data schema differences by path deterministic finite automata |
US11587189B2 (en) | 2019-11-27 | 2023-02-21 | International Business Machines Corporation | Formal verification of smart contracts |
RU2726957C1 (ru) * | 2020-01-09 | 2020-07-20 | Министерство региональной безопасности Омской области | Комплекс систем автоматизации |
DE102021209612A1 (de) * | 2021-09-01 | 2023-03-02 | Robert Bosch Gesellschaft mit beschränkter Haftung | Vorrichtung, Computer-implementiertes Verfahren und Computerprogramm zur automatischen Analyse von Daten |
KR20230042986A (ko) * | 2021-09-23 | 2023-03-30 | 연세대학교 산학협력단 | 글루시코프 오토마타 생성과 하이브리드 매칭을 활용한 정규 표현식 엔진에 관한 오토마타 처리 장치 및 방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003084987A (ja) * | 2001-09-11 | 2003-03-20 | Internatl Business Mach Corp <Ibm> | Xml文書の妥当性を検証するためのオートマトンの生成方法、xml文書の妥当性検証方法、xml文書の妥当性を検証するためのオートマトンの生成システム、xml文書の妥当性検証システムおよびプログラム |
US7181386B2 (en) * | 2001-11-15 | 2007-02-20 | At&T Corp. | Systems and methods for generating weighted finite-state automata representing grammars |
EP1331630A3 (en) * | 2002-01-07 | 2006-12-20 | AT&T Corp. | Systems and methods for generating weighted finite-state automata representing grammars |
CN101116052A (zh) * | 2004-12-21 | 2008-01-30 | 米斯特科技有限公司 | 网络接口及防火墙设备 |
CN1955991A (zh) * | 2005-10-25 | 2007-05-02 | 国际商业机器公司 | 在业务模型中集成模型语义和领域语义的方法和装置 |
CN101266550B (zh) * | 2007-12-21 | 2011-02-16 | 北京大学 | 一种恶意代码检测方法 |
US8543653B2 (en) * | 2010-11-11 | 2013-09-24 | Sap Ag | Systems and methods for business network management discovery and consolidation |
US8655989B2 (en) * | 2011-10-14 | 2014-02-18 | Sap Ag | Business network access protocol for the business network |
-
2011
- 2011-12-08 US US13/315,041 patent/US8805769B2/en active Active
-
2012
- 2012-12-07 EP EP12008205.2A patent/EP2613283A3/en not_active Ceased
- 2012-12-07 JP JP2012268180A patent/JP6067356B2/ja active Active
- 2012-12-10 CN CN201210528222.1A patent/CN103218288B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013120605A (ja) | 2013-06-17 |
CN103218288B (zh) | 2017-07-07 |
US8805769B2 (en) | 2014-08-12 |
CN103218288A (zh) | 2013-07-24 |
EP2613283A3 (en) | 2014-01-29 |
EP2613283A2 (en) | 2013-07-10 |
US20130151463A1 (en) | 2013-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6067356B2 (ja) | 情報の検証 | |
Buijs | Flexible evolutionary algorithms for mining structured process models | |
Laue et al. | Structuredness and its significance for correctness of process models | |
Becker et al. | Business process compliance checking–applying and evaluating a generic pattern matching approach for conceptual models in the financial sector | |
Noguera et al. | Ontology-driven analysis of UML-based collaborative processes using OWL-DL and CPN | |
Cámara et al. | Interactive specification and verification of behavioral adaptation contracts | |
Vaisman | An introduction to business process modeling | |
Abushark et al. | Requirements specification via activity diagrams for agent-based systems | |
Becker et al. | Modeling and checking business process compliance rules in the financial sector | |
Aalst et al. | Specifying and monitoring service flows: Making web services process-aware | |
Zhou et al. | Assessment of service protocol adaptability based on novel walk computation | |
Albert et al. | A constrained object model for configuration based workflow composition | |
Kumar et al. | Pattern-oriented knowledge model for architecture design | |
Tanida et al. | Automated system testing of dynamic web applications | |
Gudas | Causal modelling in enterprise architecture frameworks | |
Jalali | Foundation of aspect oriented business process management | |
Gómez-Pérez et al. | Ontological engineering and the semantic web | |
Lakshmanan et al. | A business centric monitoring approach for heterogeneous service composites | |
Buschle | Tool Support for Enterprise Architecture Analysis: with application in cyber security | |
Baryannis | A novel specification and composition language for services | |
Kammerer | Enabling Personalized Business Process Modeling: The Clavii BPM Platform | |
Ritter et al. | A Data Quality Approach to Conformance Checks for Business Network Models | |
Forgács et al. | Test Design Automation by Model-Based Testing | |
Vianden | Systematic Metric Systems Engineering: Reference Architecture and Process Model | |
van Dongen | A Tour in Process Mining: From Practice to Algorithmic Challenges |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151125 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160805 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160905 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161028 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161121 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161221 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6067356 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |