2016-06-29 17 views
3

Marklogicには、「スマート番号」(たとえば、最初の2文字はDepartmentを表し、2番目の文字はプロジェクトを表す)などのXML文書が多数あります。数字から必要な情報を解析するのはかなり複雑で、データベースのルックアップなどが必要です。私たちは解析を処理するJavaプロセスを持っています。各ドキュメントにはそれらの番号がいくつか含まれていて、スマート番号の属性に基づいて一連のXMLを照会できるようにしたいと考えています。たとえば、所与の部門に請求された時間は何時間であるか、または所与のプロジェクトに何時間が掛かったかを分断する(このデータは多くの文書に広がる可能性がある)。これにより、解析されたデータを何らかの形でXML文書に添付する必要があると私は思います。MarklogicでXML文書に余分なデータを追加

私はMarklogicには新しく、このような状況ではベストプラクティスとは何か考えています。私は考えることができることの一つは、各XMLファイルを編集して、XMLに解析されたデータを追加することです:

ので、この:

<ELEMENT> 
    <SMART_NUMBER>Blah, Blah, Blah</SMART_NUMBER> 
</ELEMENT> 
<ELEMENT> 
    <SMART_NUMBER>Blah2, Blah2, Blah2</SMART_NUMBER> 
</ELEMENT> 

はこのようになります。

<ELEMENT> 
    <SMART_NUMBER>Blah, Blah, Blah</SMART_NUMBER> 
    <PARSED_DATA> 
     <DEPARTMENT>BLAH BLAH</DEPARTMENT> 
     <PROJECT>BLAH BLAH</PROJECT> 
     … 
    </ PARSED_DATA> 
</ELEMENT> 
<ELEMENT> 
    <SMART_NUMBER>Blah2, Blah2, Blah2</SMART_NUMBER> 
    <PARSED_DATA> 
     <DEPARTMENT>BLAH2 BLAH2</DEPARTMENT> 
     <PROJECT>BLAH2 BLAH2</PROJECT> 
     … 
    </ PARSED_DATA> 
</ELEMENT> 

私はわからないんだけど「より良い」方法がある場合は、セマンティクスを使用することが可能です:ドキュメント内の各スマート番号に対して、ドキュメントをスマート番号にリンクするトリプレットを作成します。次に、各スマート番号に対して、スマート番号のさまざまな部分を定義する一連のトリプレットを作成します。しかし、私はセマンティクスを使用することに非常に慣れていないので、このアプローチが追求する価値があるかどうかわかりません。どんなアイデアや提案も大歓迎です。

+0

返信いただきありがとうございます。私は先に進んで、XMLを更新するアプローチを使用しましたが、うまくいきます。 –

答えて

0

あなたは正しい方向にいると思います。

トリプルを使用してデータを保存したい場合は、興味深いアイデアになります。あなたが正しく指摘したように、あなたがスマート数に対するスマート数のさまざまな部分を保存することができますトリプルの場合、トリプルは次のようになります -

<smart-number-1><predicate\department><department-1>

<smart-number-1><predicate\project><project-1>

することができます任意のパラメータでデータを分割したい場合は、graph-nameを使用してトリプルを挿入してください。グラフを使用している場合は、set graph permissionsが必要な場合があります。

PS:グラフは、このことができます願ってい

トリプルのための同等のXMLコレクションです!

0

あなたは正しい軌道にいると思います。高速ファセット検索が必要な場合は、データを非正規化するのがはるかに簡単な方法です。しかし、コードを名前に変換するのではなく(私が正しく理解していれば複雑なルックアップが必要です)、smart-numberをdepartment-id、project-idなどの別々の識別子に分割することも考えられます。後でそのIDをいつでも名前に変換することができます。セマンティクスを使用して

は楽しいことができますが、リンクされた他のデータソースにリンクしたい場合は、SPARQLを使用したいほとんど興味がある、または関係を推論したいと思います..

HTHことができます!