質問
私の会社のXMLドキュメントとスキーマを再定義する必要があります。問題の文書は、たとえば、それぞれが薬に関する情報を含むいくつかのセクションに分割されます。
<dosage>overview of dose info
<elderly>doses for elderly patients</elderly>
<children>doses for children</children>
</dosage>
<administration>info about administering the med...</administration>
要素が何であるかを反映するために要素名を変更する必要があると強く信じています <section>
コンテンツを説明する属性で: <section displayName='dosage'>
. 。私の同僚全員が同意するわけではありません。
私の考えは正しいですか、そして誰もが実際に有用であると感じた要素の命名法の指導原則を提供することができますか?
解決
の場合を考えてみましょう elderly
と children
. 。タグはそれを定義する必要があります は - この場合、それらは両方とも特定のタイプの人に固有の投与量の指示です。しかし、使用しています children
と elderly
この情報を伝えません - そこには関係がありません。代わりにそうであれば <instructions target="elderly">...</instructions>
, 、その関係は維持されています。どちらもです instructions
別の場合 targets
.
のために dosage
と administration
セクションは、両方とも投薬の特性と見なされる可能性があります。ここで行うことは、ドキュメント全体の構造とそれがどのように解析されるかによって異なります。それは私には思われる dosage
とは非常に異なります administration
. 。これをOOLでオブジェクトとして定義している場合は、次のようになります。
class Medication
{
Dictionary<string, string> dosageInstructions; //or <PersonType, string>, preferably
string administrationInfo;
}
これらは両方とも異なる特性であり、それらの間に実際の類似点はありません(まあ、それらは両方とも薬物の特性であることを除いて)。私はそれがすでによりもそれ以上のことを抽象化することは役に立つとは思わないが、それはドキュメント全体の構造とそれがどのように使用されるかに基づいていずれかの方法で議論できるものだ。
たとえば、キー価値のペアのリストを印刷する場合(たとえば、1つのキーは administration
そして、その価値は情報です)さまざまなプロパティの束にとって、それが道です。だが dosage
から明確な構造があります administration
, 、だから、その特定の抽象化が役立つとは思わない。すべての薬物が可能な特性の固定セット(投与量、投与情報など)がすべて異なる方法で処理される場合、私の意見では、それらすべてに異なるタグを使用することは論理的です。
一般的な指導原則に関しては、一般に「このドキュメントをオブジェクトとして定義する方法」と考え、そのオブジェクトのXMLシリアル化がどうなるかを考えます。私はオブジェクトの操作にはるかに慣れているので、これは私にとってうまくいきますが、あなたの走行距離は異なる場合があります。そして、確かにそれが最良のアプローチではない場合があります - たとえば、あなたが本当に表現している場合 資料, 、HTMLのように、それは行くべき道ではありません。ただし、XMLを使用して通常のデータ構造を定義する場合は、通常は機能します。
他のヒント
一般的に、提供された例のようにXMLを定義することは少し明確であることがわかりました。
<dosage>
<elderly>doses for elderly patients</elderly>
<children>doses for children</children>
</dosage>
<administration>info about administering the med...</administration>
提案された命名法の極端な例として、あなたはこれに終わる可能性があります:
<field name="dosage">
<field name="elderly">doses for elderly patients</field>
<field name="children">doses for children</field>
</field>
もちろん、最終的には特定のアプリケーションに依存しますが、一般に、現実世界からXMLまで、必要な限り抽象的な存在と財産を抽象化しようとしますが、それ以上ではありません。
したがって、この例では「セクション」要素はオーバーアブストラクションです。
それは少し遠くに行くと思います。私はルールに従いますが、それは文脈から意味的に意味がありますか?セクションは文脈から意味があるかもしれませんが、関連するセマンティック情報を失っていることがわかります。それで、私たちはそれについて何を知る必要がありますか? Doosage情報が含まれていること。おそらく dosageinfo 方が良いだろう?
高齢者と子供のための同じアプローチに従って、これらの要素は高齢者と子供を表していると仮定します。ええと...そうではありません。彼らの名前が彼らがしていることを反映しているなら、彼らはもっとのようなものになるでしょう:
<dosageinfo>
<dosage recipient="elderly">Blah</dosage>
<dosage recipient="children"></dosage>
</dosageinfo>
とはいえ、これは確かに正式な方法ではありません - 私は実際に提案された正式な方法を見たことがありません。
私がここにいて、さまざまな方法で臨床データを処理した重要な経験を持っている間、自然言語解析を使用していくつかを収集する必要がある場合でも、無料のテキストの一部を正式なXMLデータに入れることをお勧めします。それ。正式なデータは、そのように適切に表されている限り、ai-gleanedデータであっても、将来情報をより簡単にクエリすることができます。それはあなたのシナリオに関連していないかもしれませんが、私はそれを検討する価値があると思います。
無料テキストのデータは、情報としてのみ役立ちます。関係のデータはデータと情報です。