2017-08-13 4 views
-1

私は、JSONオブジェクトをREST APIを介してさまざまな他のアプリケーションから要求するアプリケーションを持っています。任意のアプリケーションからの応答は、次の形式で提供されます:オントロジ注釈付きJSONオブジェクト間で仮想整列を実行

{ 
data : { 
     key1: { val: value, defBy: "ontology class"} 
     key2: ..., 
    } 
} 

次のコードのApp1からオブジェクトを示す:

{ 
data : { 
     key1: { val: "98404506-385576361", defBy: "abc:SHA-224"} 
    } 
} 

次のコードApp2のからオブジェクトを示す:

{ 
    data : { 
      key2: { val: "495967838-485694812", defBy: "xyz:SHA3-224"} 
     } 
    } 

ここで、DefByは、valの文字列を暗号化するために使用されるアルゴリズムを指します。私のアプリケーションは、そのようなオブジェクトを受け取ると、それはJSONを解析して、そのようなことをRDFにオブジェクト内の各KVを変換します

// For objects from App1: 
key1 rdf:type osba:key 
key1 osba:generatedBy abc:SHA-224 
... 
// For objects from App2 
key2 rdf:type osba:key 
key2 osba:generatedBy xyz:SHA3-224 

は私がいずれかのosba:generatedBy場合を指定することができるようにして生成されたRDFデータを照会する必要があります私はまた、rは

  1. where {?k osba:generatedBy ???}

    は、次の点に注意してください。キーはように、有効なクエリ結果として対象を返し、その後、SHAファミリーに属しますMD5などの他の暗号化アルゴリズムを使用しているオブジェクト。

  2. ネットワークに参加する新しいアプリケーションで使用される暗号化アルゴリズムや使用する暗号化アルゴリズムは何もわかっていません。NS例えば、上記のオブジェクトでは、abc:を使用し、もう1つはxyz:を使用します。

  3. 値がSecureHashAlgorithm代わりにSHAとすることができるので、私はSPARQLフィルタリングを使用することができない

    私の問題は、私は事前に上部(参照)オントロジーを定義し、格納された値をマッピングすることができないということである

オントロジーがどのように使われているのか、値が表す暗号アルゴリズムが何であるかを私にはあらかじめ知らないので、入ってくるオブジェクトのdefBy:にあります。

私は、自動オントロジー統合、アライメント、マッピングなどについて読んでいます。しかし、私はこの概念の根拠を私の問題に見つけることはできません。

どのようなソリューションですか?

+1

ポイント3を具体化することはできますか?試してみたフィルタはうまくいきませんでしたか? –

+0

Sha *のようなワイルドカード機能を使用しようとしましたが、P-3で表現された理由のために問題を解決できません。 –

+0

統合オントロジーがなければ、クエリ拡張などはできません。明らかに、シノニム用語のマッピングが必要です。そうでなければ、完全で正確なフィルタを書くことはできません。それはすべてのドメインに適用されます。 – AKSW

答えて

0

3)の値は、xpathによって定義されるようsupports matching against regular expressionsをフィルタリングSecureHashAlgorithm代わりにSHA

SPARQLかもしれないので、私はSPARQLフィルタリングを使用することができません。したがって、

SELECT ?key 
WHERE { ?key osba:generatedBy ?generator 
     FILTER regex(?generator, "^s(ecure)?h(ash)?a(lgorithm)?.*", "i") } 

のラインに沿って何か(注:テストされていない)は、仕事をする必要があります。良い正規表現を構築するために、私はここでhttp://regexr.com/

をお勧めすることができますそれが必要です:あなたはthe str() functionで(マッチングのための)文字列にIRIを変換することができます。

+0

入力形式が\t FIPS PUB 180-4の場合、文字列が何を変更できるので、正規表現ではなくセマンティクスを使用する必要がありますか? SHA3​​の認証コード –

+3

正確に何を達成しようとしていますか?あなたは、入力データと期待される出力を持つ小さな例をまとめることができますか? SHAが "fips pub 180-4"によって参照されているだけの場合は、それをあなたの正規表現に含めてください。 –

関連する問題