首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BabelNet API网络信息

BabelNet API网络信息
EN

Stack Overflow用户
提问于 2018-03-19 16:03:38
回答 1查看 797关注 0票数 5

我正在尝试使用BabelNet restful来检索页面上的信息,页面上的信息显示在光泽之下,按钮上面写着“探索网络”。例如,在全球定位系统页面上,我希望能够提取这些属性值对:

代码语言:javascript
复制
IS A navigational system  •  sat nav  •  avionics 
HAS PART USA-242  •  USA-248 
COUNTRY United States 
COUNTRY OF ORIGIN United States 
OPERATOR Air Force Space Command 
USE location  •  place

这些信息可以通过restful获得吗?

更新:实际上,我已经或多或少地理解了这一点。关键是getOutgoingEdges查询,尽管其中的一些部分是反复尝试的,因为我发现这些文档并不像人们所希望的那样有用。但是,下面是我所得到的(现在只是为了调试目的将它们打印出来),使用python请求和BeautifulSoup:

代码语言:javascript
复制
    import requests
    from bs4 import BeautifulSoup
    import json

    proxy_dict = {} # set according to system needs
    nextId = "bn:00040680n" # the GPS page 

    r = requests.get('https://babelnet.io/v5/getOutgoingEdges?id='+nextId+'&key=<mykey>', proxies = proxy_dict)
    idsoup = BeautifulSoup(r.text, "lxml")
    jsonedgesitem = json.loads(idsoup.html.body.p.string)
    for relation in jsonedgesitem:
        lang = relation.get("language")
        if lang == "EN" or lang == "MUL":
        if "pointer" in relation:
            shortName = relation["pointer"].get("shortName") 
            if shortName != "related" and shortName != "gloss-related":
                print(json.dumps(relation,indent=2))

我正在筛选非英语链接,以及只是“相关”和“光泽相关”的链接,这是绝大多数。

它产生以下输出:

代码语言:javascript
复制
{
  "pointer": {
    "name": "operator",
    "fSymbol": "wd92",
    "relationGroup": "OTHER",
    "shortName": "operator",
    "isAutomatic": false
  },
  "language": "MUL",
  "target": "bn:00001859n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}
{
  "pointer": {
    "name": "use",
    "fSymbol": "wd148",
    "relationGroup": "OTHER",
    "shortName": "use",
    "isAutomatic": false
  },
  "language": "MUL",
  "target": "bn:00051760n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}
{
  "pointer": {
    "name": "use",
    "fSymbol": "wd148",
    "relationGroup": "OTHER",
    "shortName": "use",
    "isAutomatic": false
  },
  "language": "MUL",
  "target": "bn:00062699n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}
{
  "pointer": {
    "name": "Hypernym",
    "fSymbol": "@",
    "relationGroup": "HYPERNYM",
    "shortName": "is-a",
    "isAutomatic": false
  },
  "language": "EN",
  "target": "bn:00057078n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}
{
  "pointer": {
    "name": "has_part",
    "fSymbol": "wd76",
    "relationGroup": "HOLONYM",
    "shortName": "has_part",
    "isAutomatic": false
  },
  "language": "MUL",
  "target": "bn:15441159n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}
{
  "pointer": {
    "name": "has_part",
    "fSymbol": "wd76",
    "relationGroup": "HOLONYM",
    "shortName": "has_part",
    "isAutomatic": false
  },
  "language": "MUL",
  "target": "bn:16971426n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}
{
  "pointer": {
    "name": "country_of_origin",
    "fSymbol": "wd35",
    "relationGroup": "OTHER",
    "shortName": "country_of_origin",
    "isAutomatic": false
  },
  "language": "MUL",
  "target": "bn:00003341n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}
{
  "pointer": {
    "name": "subclass_of",
    "fSymbol": "wd21",
    "relationGroup": "HYPERNYM",
    "shortName": "subclass_of",
    "isAutomatic": false
  },
  "language": "MUL",
  "target": "bn:00007477n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}
{
  "pointer": {
    "name": "country",
    "fSymbol": "wd3",
    "relationGroup": "OTHER",
    "shortName": "country",
    "isAutomatic": false
  },
  "language": "MUL",
  "target": "bn:00003341n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}
{
  "pointer": {
    "name": "Hyponym",
    "fSymbol": "~@w",
    "relationGroup": "HYPONYM",
    "shortName": "has-kind",
    "isAutomatic": true
  },
  "language": "EN",
  "target": "bn:01177672n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}
{
  "pointer": {
    "name": "Hyponym",
    "fSymbol": "~@w",
    "relationGroup": "HYPONYM",
    "shortName": "has-kind",
    "isAutomatic": true
  },
  "language": "EN",
  "target": "bn:02122452n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}
{
  "pointer": {
    "name": "Hyponym",
    "fSymbol": "~@w",
    "relationGroup": "HYPONYM",
    "shortName": "has-kind",
    "isAutomatic": true
  },
  "language": "EN",
  "target": "bn:03088008n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}
{
  "pointer": {
    "name": "Hypernym",
    "fSymbol": "@wd",
    "relationGroup": "HYPERNYM",
    "shortName": "is-a",
    "isAutomatic": false
  },
  "language": "MUL",
  "target": "bn:00732900n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}
{
  "pointer": {
    "name": "Hypernym",
    "fSymbol": "@w",
    "relationGroup": "HYPERNYM",
    "shortName": "is-a",
    "isAutomatic": true
  },
  "language": "EN",
  "target": "bn:00732900n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}

,这里记录了什么类型的关系?特别是,在“关系类型”的Hypernym " is -a“和Hypernym”子类“之间是否存在有意义的区别?fSymbol值在哪里有文档记录?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-28 22:14:28

请注意,我可以列出所有这些评论部分,所以选择写一个答案,我只是试图回答以下问题,因为它是突出的黑体。

这里记录了什么类型的关系?特别是,在“关系类型”的Hypernym " is -a“和Hypernym”子类“之间是否存在有意义的区别?fSymbol值被记录在哪里?

fSymbols

fSymbols的完整列表可以在pointer.txt文件BabelNet-API-4.0\resources\jlt文件夹中引用。我不认为他们是完整的文档,但这是你可以找到他们的地方,我还没有找到这个列表提供在任何地方的BabeNet网站。此外,我不得不缩短下面的列表,因为我不想超载这个线程。您必须从这里下载api文件夹并将其解压缩。

代码语言:javascript
复制
%Relation Types extrated by Wikidata dump 2014 september
    wd1 instance_of instance_of HYPERNYM
    wd2 stated_in   stated_in
    wd3 country country
    wd4 sex_or_gender   sex_or_gender
    wd5 located_in_the_administrative_territorial_entity    located_in_the_administrative_territorial_entity
    wd6 taxon_rank  taxon_rank
    wd7 parent_taxon    parent_taxon
    wd8 occupation  occupation
    wd9 country_of_citizenship  country_of_citizenship
    wd10    given_name  given_name
    wd11    contains_administrative_territorial_entity  contains_administrative_territorial_entity
    wd12    place_of_birth  place_of_birth
    wd13    cast_member cast_member
    wd14    place_of_death  place_of_death
    wd15    member_of_sports_team   member_of_sports_team
    wd16    award_received  award_received
    wd17    educated_at educated_at
    wd18    type_of_administrative_territorial_entity   type_of_administrative_territorial_entity
    wd19    shares_border_with  shares_border_with
    wd20    position_held   position_held
    wd21    subclass_of subclass_of HYPERNYM
    wd22    genre   genre
    wd23    member_of_political_party   member_of_political_party
    wd24    follows follows
    wd25    followed_by followed_by
    **** there are more please refer to the file. ****

注意:我找不到任何特定的文档,但是BabelPointer.java列出了所有指针及其到RelationGroup (HYPERNYM、HYPONYM、MERONYM、HOLONYM等)的映射,有-a,has lists,has-部分,部分派生--来自其他人常用的关系类型。

代码语言:javascript
复制
public static final BabelPointer SEMANTICALLY_RELATED = new BabelPointer("r", "Semantically related form", "related");
  public static final BabelPointer GLOSS_MONOSEMOUS = new BabelPointer("gmono", "Gloss related form (monosemous)", "gloss-related");
  public static final BabelPointer GLOSS_DISAMBIGUATED = new BabelPointer("gdis", "Gloss related form (disambiguated)", "gloss-related");
  public static final BabelPointer ALSO_SEE = new BabelPointer("^", "Also See", "also-see");
  public static final BabelPointer ANTONYM = new BabelPointer("!", "Antonym", "antonym");
  public static final BabelPointer ATTRIBUTE = new BabelPointer("=", "Attribute", "attrib");
  public static final BabelPointer CAUSE = new BabelPointer(">", "Cause", "cause");
  public static final BabelPointer DERIVATIONALLY_RELATED = new BabelPointer("+", "Derivationally related form", "deriv");
  public static final BabelPointer ENTAILMENT = new BabelPointer("*", "Entailment", "entails");
  public static final BabelPointer HYPERNYM = new BabelPointer("@", "Hypernym", "is-a", RelationGroup.HYPERNYM);
  public static final BabelPointer HYPERNYM_INSTANCE = new BabelPointer("@i", "Instance hypernym", "is-a", RelationGroup.HYPERNYM);
  public static final BabelPointer HYPONYM = new BabelPointer("~", "Hyponym", "has-kind", RelationGroup.HYPONYM);
  public static final BabelPointer HYPONYM_INSTANCE = new BabelPointer("~i", "Instance hyponym", "has-kind", RelationGroup.HYPONYM);
  public static final BabelPointer HOLONYM_MEMBER = new BabelPointer("#m", "Member holonym", "has-part", RelationGroup.HOLONYM);
  public static final BabelPointer HOLONYM_SUBSTANCE = new BabelPointer("#s", "Substance holonym", "has-part", RelationGroup.HOLONYM);
  public static final BabelPointer HOLONYM_PART = new BabelPointer("#p", "Part holonym", "has-part", RelationGroup.HOLONYM);
  public static final BabelPointer MERONYM_MEMBER = new BabelPointer("%m", "Member meronym", "part-of", RelationGroup.MERONYM);
  public static final BabelPointer MERONYM_SUBSTANCE = new BabelPointer("%s", "Substance meronym", "part-of", RelationGroup.MERONYM);
  public static final BabelPointer MERONYM_PART = new BabelPointer("%p", "Part meronym", "part-of", RelationGroup.MERONYM);
  public static final BabelPointer PARTICIPLE = new BabelPointer("<", "Participle", "participle");
  public static final BabelPointer PERTAINYM = new BabelPointer("\\", "Pertainym (pertains to nouns)", "pertains-to");
  public static final BabelPointer REGION = new BabelPointer(";r", "Domain of synset - REGION", "domain");
  public static final BabelPointer REGION_MEMBER = new BabelPointer("-r", "Member of this domain - REGION", "domain");
  public static final BabelPointer SIMILAR_TO = new BabelPointer("&", "Similar To", "sim");
  public static final BabelPointer TOPIC = new BabelPointer(";c", "Domain of synset - TOPIC", "topic");
  public static final BabelPointer TOPIC_MEMBER = new BabelPointer("-c", "Member of this domain - TOPIC", "topic");
  public static final BabelPointer USAGE = new BabelPointer(";u", "Domain of synset - USAGE", "usage");
  public static final BabelPointer USAGE_MEMBER = new BabelPointer("-u", "Member of this domain - USAGE", "usage");
  public static final BabelPointer VERB_GROUP = new BabelPointer("$", "Verb Group", "verb_group");
  public static final BabelPointer WIBI_HYPERNYM = new BabelPointer("@w", "Hypernym", "is-a", RelationGroup.HYPERNYM, true);
  public static final BabelPointer WIKIDATA_HYPERNYM = new BabelPointer("@wd", "Hypernym", "is-a", RelationGroup.HYPERNYM);
  public static final BabelPointer WIKIDATA_MERONYM = new BabelPointer("%wdm", "Part meronym", "part-of", RelationGroup.MERONYM);
  public static final BabelPointer WIBI_HYPONYM = new BabelPointer("~@w", "Hyponym", "has-kind", RelationGroup.HYPONYM, true);
  public static final BabelPointer WIKIDATA_HYPONYM_INSTANCE = new BabelPointer("~wd", "Hyponym", "has-kind", RelationGroup.HYPONYM);
  public static final BabelPointer WIKIDATA_HYPONYM = new BabelPointer("~wds", "Hyponym", "has-kind", RelationGroup.HYPONYM);
  public static final BabelPointer ANY_HYPERNYM = new BabelPointer("ahpe", "Any Hypernym", "is-a", RelationGroup.HYPERNYM);
  public static final BabelPointer ANY_MERONYM = new BabelPointer("am", "Any Meronym", "part-of", RelationGroup.MERONYM);
  public static final BabelPointer ANY_HOLONYM = new BabelPointer("aho", "Any Holonym", "has-part", RelationGroup.HOLONYM);
  public static final BabelPointer ANY_HYPONYM = new BabelPointer("ahpo", "Any Hyponym", "has-kind", RelationGroup.HYPONYM);

下面的指针指的是指GPS 编号:00040680n的航空电子设备,是航空电子电话号码:00007477n的一个子类,通用GPS是卫星导航编号:00732900n和is系统编号:00057078n

代码语言:javascript
复制
{
  "pointer": {
    "name": "subclass_of",
    "fSymbol": "wd21",
    "relationGroup": "HYPERNYM",
    "shortName": "subclass_of",
    "isAutomatic": false
  },
  "language": "MUL",
  "target": "bn:00007477n",
  "normalizedWeight": 0.0,
  "weight": 0.0
}

可能的关系,但可能有更多的继续阅读。

是-a:习惯于将某物归入更一般的类别。

子类

子类的子类,是超类的“派生类”、“后继类”或子类。

我还发现可能有更多的类型是(等价物(skos:exactMatch) )。我从这里获取了下面的图片,其中讨论了关于手工本体构建的更多内容,您可以阅读它以获得更多的洞察力。

最后,这个线程深入讨论了如何区分子类型和子类,这在您的情况下可能会有所帮助。

为了参考点,我使用的是是-a模型语义关系

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49367386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档