Frage

Ich brauche ein XML-Dokument und das Schema für mein Unternehmen neu zu definieren. Das fragliche Dokument ist aufgeteilt in eine Anzahl von Abschnitten, dass jede enthält Informationen über ein Medikament, zum Beispiel;

<dosage>overview of dose info
   <elderly>doses for elderly patients</elderly>
   <children>doses for children</children>
</dosage>
<administration>info about administering the med...</administration>

Ich glaube fest, dass die Elementnamen geändert werden sollte, zu reflektieren, was das Element zB <section> mit einem Attribut beschreibt den Inhalt: <section displayName='dosage'>. Nicht alle meiner Kollegen zustimmen.

Ist mein Denken richtig und kann jemand bieten Leitprinzipien für Element Nomenklatur, dass sie in der Praxis bewährt haben?

War es hilfreich?

Lösung

Nehmen wir den Fall elderly und children. Der Tag sollte definieren, was es is - in diesem Fall sind sie beide Dosierungsanweisungen spezifisch für eine bestimmte Art von Person. Aber mit children und elderly kommuniziert diese Informationen nicht - es gibt keine Beziehung gibt. Wenn stattdessen es <instructions target="elderly">...</instructions> ist, wird diese Beziehung aufrechterhalten. Beide sind instructions für verschiedene targets.

Für die dosage und administration Abschnitte könnten beide von denen in Betracht gezogen werden, um Eigenschaften des Medikaments sein. Was Sie tun, hängt dabei von der Struktur des gesamten Dokuments und wie wird sie analysiert werden. Es scheint mir, dass dosage von administration sehr verschieden ist. Wenn Sie dies als ein Objekt in einer OOL wurden definiert, müßten Sie:

class Medication
{
    Dictionary<string, string> dosageInstructions; //or <PersonType, string>, preferably
    string administrationInfo;
}

Beide sind unterschiedliche Eigenschaften, und es gibt keine wirkliche Parallele zwischen ihnen (gut, außer, dass sie beide Eigenschaften der Medikamente sind). Ich glaube nicht, dass es zu abstrakt nützlich sein, dass mehr als es ohnehin schon ist, aber es ist etwas, das so oder so auf der Struktur des gesamten Dokuments basieren könnte argumentiert werden, und wie es geht, verwendet werden.

Wenn Sie beispielsweise eine Liste von Schlüssel-Wert-Paaren drucken werden, (zum Beispiel ein Schlüssel ist administration und dieser Wert ist die Info) für eine Reihe von verschiedenen Eigenschaften, dann, dass die Art und Weise ist zu gehen. Aber dosage hat eine ausgeprägte Struktur von administration, so dass ich glaube nicht, dass diese bestimmte Abstraktion nützlich wäre. Wenn jedes Medikament eine feste Menge von möglichen Eigenschaften (Dosierung, Verabreichung Info, etc.), die alle unterschiedlich behandelt werden, dann meiner Meinung nach wäre es logisch, für alle von ihnen verschiedene Tags zu verwenden.

Soweit allgemeine Leitsätze, ich in der Regel denken „wie würde ich dieses Dokument als Objekt definieren“, dann überlegen, was die XML-Serialisierung des Objekts sein würde. Dies funktioniert für mich, weil ich viel mehr verwendet bin mit Objekten zu arbeiten, aber die Leistung kann variieren. Und es gibt sicherlich Fälle, in denen das nicht der beste Ansatz - zum Beispiel, wenn Sie wirklich sind die eine Dokument , wie HTML, dann das ist nicht der Weg zu gehen. Aber wenn Sie XML verwenden eine regelmäßige Datenstruktur zu definieren, sollte es im Allgemeinen zu arbeiten.

Andere Tipps

Ich habe festgestellt, dass es im Allgemeinen etwas klarer ist die XML haben definiert, wie im Beispiel, das Sie zur Verfügung gestellt.

<dosage>
   <elderly>doses for elderly patients</elderly>
   <children>doses for children</children>
</dosage>
<administration>info about administering the med...</administration>

Als ein extremes Beispiel für Ihre vorgeschlagenen Nomenklatur Sie könnten mit diesem Ende:

<field name="dosage">
    <field name="elderly">doses for elderly patients</field>
    <field name="children">doses for children</field>
</field>

Natürlich, am Ende alles hängt von der jeweiligen Anwendung, aber im Allgemeinen würde ich zu abstrakt enities und Objekten der realen Welt zu XML versuchen, so viel wie es nötig ist, aber nicht mehr.

So in diesem Beispiel "Abschnitt" Element ist ein Überabstraktion.

Ich denke, dass das ein bisschen weit gehen. Ich folge einer Regel, es semantischen Sinn aus dem Zusammenhang gerissen zu machen? Abschnitt könnte Sinn aus dem Zusammenhang gerissen, aber Sie wissen, dass Sie semantische Informationen sind zu verlieren, das relevant ist. So was brauchen wir darüber wissen? Dass es enthält doosage Informationen. Also vielleicht dosageinfo wäre besser?

Nach dem gleichen Ansatz für ältere Menschen und Kinder, die wir diese Elemente stellen ältere Menschen und Kinder übernehmen würden. Um ... nicht wirklich. Wenn ihre Namen reflektieren, was sie tun, würden sie etwas wie:

<dosageinfo>
<dosage recipient="elderly">Blah</dosage>
<dosage recipient="children"></dosage>
</dosageinfo>

Das sagte, ist dies sicherlich kein formales Verfahren -. Ich habe eigentlich nie ein formales gesehen Verfahren vorgeschlagen

Während ich hier bin, und mit beträchtlicher Erfahrung mit klinischen Daten auf verschiedene Weise der Handhabung, würde ich vorschlagen, dass Sie auch versuchen, einige Ihres freien Text in formalisierte XML-Daten zu erhalten, auch wenn Sie Natural Language Parsing verwenden müssen zu einige davon aufzulesen. Alle Daten, formalisiert, auch AI-gewonnenen Daten so lange, wie seine ordnungsgemäß als solche dargestellt, können die Informationen viel einfacher in Zukunft abfragt. Es ist vielleicht nicht zu Ihrem Szenario relevant sein, aber ich glaube, es ist eine Überlegung wert.

Daten im freien Text ist als Information nur dann sinnvoll. Daten in Beziehungen sind, Daten und Informationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top