示例#1
0
    def get_label(self, lang: types.LanguageCode = types.LanguageCode("en")) -> str:
        """Get label (primary name for this entity) in a specific language.

        See: https://www.wikidata.org/wiki/Help:Label

        Parameters
        ----------
        lang
          Find the label in this language.
        """
        if isinstance(self._entity_dict["labels"], dict) and lang in self._entity_dict["labels"]:
            return self._entity_dict["labels"][lang]["value"]
        else:
            return ""
示例#2
0
    def get_aliases(self, lang: types.LanguageCode = types.LanguageCode("en")) -> List[str]:
        """Get alternative names for this entity in a specific language.

        See: https://www.wikidata.org/wiki/Help:Aliases

        Parameters
        ----------
        lang
          Find aliases in this language.
        """
        if isinstance(self._entity_dict["aliases"], dict) and lang in self._entity_dict["aliases"]:
            return [el["value"] for el in self._entity_dict["aliases"][lang]]
        else:
            return []
示例#3
0
    def get_lemma(self, lang: types.LanguageCode = types.LanguageCode("en")) -> str:
        """Get lemma (primary name for this lexeme) in a specific language.

        See: https://www.mediawiki.org/wiki/Extension:WikibaseLexeme/Data_Model#Lemma

        Parameters
        ----------
        lang
          Find the lemma in this language.
        """
        if isinstance(self._entity_dict["lemmas"], dict) and lang in self._entity_dict["lemmas"]:
            return self._entity_dict["lemmas"][lang]["value"]
        else:
            return ""
示例#4
0
    def get_gloss(self, lang: types.LanguageCode = types.LanguageCode("en")) -> str:
        """Get gloss of this sense in a given language.

        See: https://www.mediawiki.org/wiki/Extension:WikibaseLexeme/Data_Model#Gloss

        Parameters
        ----------
        lang
          Find the gloss in this language.
        """
        if isinstance(self._sense_dict["glosses"], dict) and lang in self._sense_dict["glosses"]:
            return self._sense_dict["glosses"][lang]["value"]
        else:
            return ""
示例#5
0
    def get_description(self, lang: types.LanguageCode = types.LanguageCode("en")) -> str:
        """Get a brief description of this entity in a specific language.

        See: https://www.wikidata.org/wiki/Help:Description

        Parameters
        ----------
        lang
          Find the description in this language.
        """
        if (
            isinstance(self._entity_dict["descriptions"], dict)
            and lang in self._entity_dict["descriptions"]
        ):
            return self._entity_dict["descriptions"][lang]["value"]
        else:
            return ""
示例#6
0
    def get_representation(self, lang: types.LanguageCode = types.LanguageCode("en")) -> str:
        """Get representation of this form in a given language.

        See: https://www.mediawiki.org/wiki/Extension:WikibaseLexeme/Data_Model#Representation

        Parameters
        ----------
        lang
          Find the representation in this language.
        """
        if (
            isinstance(self._form_dict["representations"], dict)
            and lang in self._form_dict["representations"]
        ):
            return self._form_dict["representations"][lang]["value"]
        else:
            return ""
示例#7
0
import json
import os
import unittest

import pytest
from qwikidata import types
from qwikidata.datavalue import WikibaseEntityId
from qwikidata.entity import WikidataItem, WikidataLexeme, WikidataProperty

PATH_HERE = os.path.dirname(os.path.realpath(__file__))
PATH_TO_TEST_DATA = os.path.join(PATH_HERE, "data")

EN = types.LanguageCode("en")
DE = types.LanguageCode("de")
NO = types.LanguageCode("not a language")


def _load_item_dict(item_id: types.ItemId) -> types.ItemDict:
    """Return an item dictionary."""
    fpath = os.path.join(PATH_TO_TEST_DATA, f"wd_{item_id}.json")
    with open(fpath, "r") as fp:
        item_dict = json.load(fp)
    return item_dict


def _load_property_dict(property_id: types.PropertyId) -> types.PropertyDict:
    """Return n property dictionary."""
    fpath = os.path.join(PATH_TO_TEST_DATA, f"wd_{property_id}.json")
    with open(fpath, "r") as fp:
        property_dict = json.load(fp)
    return property_dict