4 Stimmen

Erzeugen einer .DOT-Datei aus einer RDF-Datei

Ich habe eine RDF-Datei, aus der ich eine .dot-Datei erzeugen möchte. Ich möchte eine Reihe von Regeln erstellen, um die Knoten und die Verbindungen zwischen diesen Knoten zu gestalten (z. B. eine bestimmte Art von Pfeil, um eine Ehebeziehung darzustellen).

Hier ein Beispiel für eine solche Umrechnungs "regel":

 <person rdf:about="http://www.something.com/EGAnne"
   <j: DateBirth>1981</j: DateBirth>
   <j:Profession>Comptable</j:Profession>
   <j:Gender>Female</j:Gender>
 </j:person>

Ich möchte diese Zeilen in dieses Ergebnis umwandeln:

a [label = "Anne \ n \ nD.Birth: 1981 \ nProfession: Accounting \ n", shape = circle, fillcolor = "pink" style = "filled", fontsize = "9", fontname = " Arial, bold "];

Um dann die Ehe zwischen zwei Instanzen der Klasse Person wird die Pfeilart "odot" und die Farbe "goldenrod" sein:

a -> j [arrowhead = "odot" arrowtail = "odot", dir = both, color = "goldenrod"]

Wie kann ich die .dot-Datei automatisch aus der RDF-Datei generieren, indem ich Regeln wie die oben genannten befolge?

0 Stimmen

Ich kenne keinen RDF-zu-DOT-Konverter, der diese Art von Verhalten unterstützt. Ich schlage vor, dass Sie einen funktionierenden Open-Source-Konverter finden und ihn dann so anpassen, dass er die von Ihnen vorgeschlagenen Styling-Regeln unterstützt

3voto

cygri Punkte 9212

Das sieht so aus, als ob es für Sie funktionieren könnte: RDF-zu-Punkt .

0 Stimmen

Hallo, danke für Ihre Antwort. Das RDF-to-Dot-Tool erlaubt es nicht, spezifische "Regeln", wie ich sie oben geschrieben habe, zu berücksichtigen. :(

3voto

Rick Punkte 1397

Xslt ist meine bevorzugte Methode, um Graphviz-Dateien aus Xml zu erstellen.

Für Sie könnte die Schlüsselstelle so aussehen...

<xsl:for-each select="whateverThePathIs/person">
<xsl:if test="(./j:Gender &eq; 'Female')">
# Output a node for a Female
</xsl:if>
<xsl:if test="(./j:Gender &eq; 'Male')">
# Output a node for a Male
</xsl:if>
</xsl:for-each>

1voto

user241170 Punkte 21

Das scheint der Aufgabe gewachsen zu sein: https://metacpan.org/pod/rdfdot

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X