Hallo Andreas,
danke für die schnelle Antwort. Klar, getReferencedObject gibt natürlich ganz unterschiedliche Klassen zurück. Ich bekomme in meinem Testprojekt referenzierte Objekte der Typen Page, Section, GCAPage, Content2, Template, TableTemplate etc.
Am wichtigsten sind natürlich erst mal die aus Page und Section. Beides ist möglich, je nachdem, wo der Link angelegt ist. Aber auch aus Section kann ich keine Sprache erkennen. Beipiel:
<SECTION editor="98627" id="906613" name="text_box" revision="240156" sectiontemplate="996">
<LANG displayname="Text Box" language="EN"/>
<LANG displayname="Text Box" language="DE"/>
<LANG displayname="Text Box" language="ES"/>
</SECTION>
diese Sprachen bezeichnen ja nur die (gesetzten) Anzeigenamen des Absatztes. Die Referenz ist aber in der Sprache PT gesetzt. Das kann ich so nicht erkennen und wenn getReferencedObject schon die Section zurückliefert, sehe ich keine Möglichkeit mehr, darin zu erkennen, wo der Link genau gesetzt ist. Der Referenzgraph zeigt mir auch nur den Absatz an, da sind keine Informationen über Sprache oder Name der Eingabekomponente angegeben.
Ich hatte gehofft, dass es vielleicht irgendwo eine (undokumentierte) Methode zum direkten Auslesen aus der ReferenceEntry gibt, also noch vor getReferencedObject. Um bei Deinem obigen Beispiel zu bleiben, z.B. sowas in der Art:
for (ref : st.getIncomingReferences()){
context.logInfo(ref.getReferenceLanguage() + ", " + ref.getReferenceAttribute());
}
Aber ich befürchte, man muss in der gefundenen Referenz bzw. dem referencedObject wieder rekursiv durch alle Sprachen und Attribute gehen und die outgoingReferences vergleichen, um herauszufinden, wo genau die Referenz versteckt ist 
Grüße
Matthias