Get comprehensive RDF data for a DanNet synset (lexical concept).
UNDERSTANDING THE DATA MODEL:
Synsets are ontolex:LexicalConcept instances representing word meanings.
They connect to words via ontolex:isEvokedBy and have rich semantic relations.
KEY RELATIONSHIPS (by importance):
1. TAXONOMIC (most fundamental):
- wn:hypernym → broader concept (e.g., "hund" → "pattedyr")
- wn:hyponym → narrower concepts (e.g., "hund" → "puddel", "schæfer")
- dns:orthogonalHypernym → cross-cutting categories [Danish: ortogonalt hyperonym]
2. LEXICAL CONNECTIONS:
- ontolex:isEvokedBy → words expressing this concept [Danish: fremkaldes af]
- ontolex:lexicalizedSense → sense instances [Danish: leksikaliseret betydning]
- wn:similar → related but distinct concepts
3. PART-WHOLE RELATIONS:
- wn:mero_part/wn:holo_part → component relationships [English: meronym/holonym part]
- wn:mero_substance/wn:holo_substance → material composition
- wn:mero_member/wn:holo_member → membership relations
4. SEMANTIC PROPERTIES:
- dns:ontologicalType → semantic classification with @set array of dnc: types
Common types: dnc:Animal, dnc:Human, dnc:Object, dnc:Physical,
dnc:Dynamic (events/actions), dnc:Static (states)
- dns:sentiment → emotional polarity with marl:hasPolarity and marl:polarityValue
- wn:lexfile → semantic domain (e.g., "noun.food", "verb.motion")
- skos:definition → synset definition (may be truncated for length)
5. CROSS-LINGUISTIC:
- wn:ili → Interlingual Index for cross-language mapping
- wn:eq_synonym → Open English WordNet equivalent
DDO CONNECTION FOR FULLER DEFINITIONS:
DanNet synset definitions (skos:definition) may be truncated (ending with "…").
For complete definitions, use the fetch_ddo_definition() tool which automatically
retrieves full DDO text, or manually examine sense source URLs via get_sense_info().
NAVIGATION TIPS:
- Follow wn:hypernym chains to find semantic categories
- Check dns:inherited for properties from parent synsets
- Use parse_resource_id() on URI references to get clean IDs
- For fuller definitions, examine individual sense source URLs via get_sense_info()
Args:
synset_id: Synset identifier (e.g., "synset-1876" or just "1876")
Returns:
Dict containing JSON-LD format with:
- @context → namespace mappings
- @id → entity identifier (e.g., "dn:synset-1876")
- @type → "ontolex:LexicalConcept"
- All RDF properties with namespace prefixes (e.g., wn:hypernym)
- dns:ontologicalType → {"@set": ["dnc:Animal", ...]} (if applicable)
- dns:sentiment → {"marl:hasPolarity": "marl:Positive", "marl:polarityValue": "3"} (if applicable)
- synset_id → clean identifier for convenience
Example:
info = get_synset_info("synset-52") # cake synset
# Check info['wn:hypernym'] for parent concepts
# Check info['dns:ontologicalType']['@set'] for semantic types
# Check info['dns:sentiment']['marl:hasPolarity'] for sentiment
Connector