Jdforrester-WMF created this task.
Jdforrester-WMF added projects: Lexicographical data, Wikidata.

TASK DESCRIPTION
  Use case: Given a grapheme (string of text), and probably a contextual 
language, I'd like to get a "sense" response from an efficient Wikidata.org API.
  
  Current situation:
  
  action=wbsearchentities &type=lexeme &language=en &search=first 
<https://www.wikidata.org/w/api.php?action=wbsearchentities&type=lexeme&language=en&search=first>;
 the `search` response is:
  
    "search": [
        {
            "repository": "",
            "id": "L2",
            "concepturi": "http://www.wikidata.org/entity/L2";,
            "title": "Lexeme:L2",
            "pageid": 54386964,
            "url": "//www.wikidata.org/wiki/Lexeme:L2",
            "label": "first",
            "description": "English, noun",
            "match": {
                "type": "label",
                "language": "en",
                "text": "first"
            }
        },
        {
            "repository": "",
            "id": "L14410",
            "concepturi": "http://www.wikidata.org/entity/L14410";,
            "title": "Lexeme:L14410",
            "pageid": 56141960,
            "url": "//www.wikidata.org/wiki/Lexeme:L14410",
            "label": "firstly",
            "description": "English, adverb",
            "match": {
                "type": "label",
                "language": "en",
                "text": "firstly"
            }
        },
        {
            "repository": "",
            "id": "L34200",
            "concepturi": "http://www.wikidata.org/entity/L34200";,
            "title": "Lexeme:L34200",
            "pageid": 57898177,
            "url": "//www.wikidata.org/wiki/Lexeme:L34200",
            "label": "firsthand",
            "description": "English, adjective",
            "match": {
                "type": "label",
                "language": "en",
                "text": "firsthand"
            }
        }
    ],
  
  Then sling the resultant id into action=wbgetentities &language=en &ids=L2 
<https://www.wikidata.org/w/api.php?action=wbgetentities&language=en&ids=L2>; 
the `senses` response is:
  
    "senses": [
        {
                "id": "L2-S1",
                "glosses": {
                        "en": {
                                "language": "en",
                                "value": "Element in an ordered list which 
comes before all others according to the ordering"
                        },
                        "de": {
                                "language": "de",
                                "value": "einer Ordnung folgend das Element vor 
allen anderen"
                        },
                        "es": {
                                "language": "es",
                                "value": "Elemento que se ubica antes que todos 
los dem\u00e1s en una lista ordenada."
                        },
                        "eu": {
                                "language": "eu",
                                "value": "Ordenatutako zerrenda batean besteen 
aurretik dagoen elementua"
                        },
                        "te": {
                                "language": "te",
                                "value": "\u0c2e\u0c4a\u0c26\u0c1f\u0c3f "
                        },
                        "pt-br": {
                                "language": "pt-br",
                                "value": "Elemento em uma lista ordenada que 
precede todos os demais conforme o ordenamento"
                        }
                },
  
  Problems:
  
  - Two API calls which the user has to daisy-chain.
  - Lots of extraneous data I don't care about.
  - (?) There's no language filter for limiting the language describing the 
lexeme/language/sense tuple.
  
  Desired outcome:
  
  - A single, light-weight API call that given a grapheme and optionally a 
contextual language can respond with one or more lexeme/sense responses in a 
given output language.
  
  //e.g.// `?action=wblgetsenses &grapheme=first &glanguage=en &language=de`
  
    "lexemes": {
        "L2": {
                "pageid": 54386964,
                "id": "L2",
                "lemmas": {
                        "en": {
                                "language": "en",
                                "value": "first"
                        }
                },
                "lexicalCategory": "Q1084",
                "language": "Q1860",
                "senses": [
                        {
                                "id": "L2-S1",
                                "glosses": {
                                        "language": "de",
                                        "value": "einer Ordnung folgend das 
Element vor allen anderen"
                                }
                        }
                ]
        }
    }
  
  Or, for a more complex situation, //e.g.// `?action=wblgetsenses 
&grapheme=Gift &language=de`
  
    "lexemes": {
        "L16827": {
                "pageid": 56340177,
                "id": "L16827",
                "language": "Q1860",
                "lemmas": {
                        "en": {
                                "language": "en",
                                "value": "gift"
                        }
                },
                "lexicalCategory": "Q24905",
                "language": "Q1860",
                "senses": [
                        {
                                "id": "L16827-S1",
                                "glosses": {
                                        "language": "de",
                                        "value": "Als Geschenk oder Spende 
etwas geben."
                                }
                        }
                ]
        },
        "L7166": {
                "pageid": 55653109,
                "id": "L7166",
                "lemmas": {
                        "en": {
                                "language": "en",
                                "value": "gift"
                        }
                },
                "lexicalCategory": "Q1084",
                "language": "Q1860",
                "senses": [
                        {
                                "id": "L7166-S1",
                                "glosses": {
                                        "language": "de",
                                        "value": "etwas das ohne Gegenleistung 
freiwillig gegeben wird"
                                }
                        }
                ]
        },              
        "L<I just made this up>": {
                "pageid": 123456,
                "id": "L<I just made this up>",
                "lemmas": {
                        "en": {
                                "language": "de",
                                "value": "Gift"
                        }
                },
                "lexicalCategory": "Q1084",
                "language": "Q188",
                "senses": [
                        {
                                "id": "L<I just made this up>-S1",
                                "glosses": {
                                        "language": "de",
                                        "value": "gesundheitsschädliche oder 
potenziell tödliche Substanz"
                                }
                        }
                ]
        }
    }
  
  Is this a sane request? :-)

TASK DETAIL
  https://phabricator.wikimedia.org/T222901

EMAIL PREFERENCES
  https://phabricator.wikimedia.org/settings/panel/emailpreferences/

To: Jdforrester-WMF
Cc: Jdforrester-WMF, darthmon_wmde, alaa_wmde, Nandana, Mringgaard, Lahi, Gq86, 
GoranSMilovanovic, QZanden, LawExplorer, _jensen, rosalieper, Wikidata-bugs, 
aude, Darkdadaah, Mbch331
_______________________________________________
Wikidata-bugs mailing list
Wikidata-bugs@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikidata-bugs

Reply via email to