我正在尝试使用BabelNet restful API来检索光泽下方和"浏览网络"按钮上方页面上的信息.例如,在GPS页面上,我希望能够提取这些属性值对:
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
Run Code Online (Sandbox Code Playgroud)
这些信息是否可以通过restful API获得?
更新:我实际上或多或少想出了这一点.关键是getOutgoingEdges查询,虽然这部分是试验和错误,因为我没有发现文档像人们希望的那样有用.但是这就是我所拥有的(只是为了调试目的而打印出来),使用python请求和BeautifulSoup:
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))
Run Code Online (Sandbox Code Playgroud)
我正在筛选出非英文链接,以及只是"相关"和"光泽相关"链接的链接,这些链接占绝大多数.
这会产生以下输出:
{
"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
}
Run Code Online (Sandbox Code Playgroud)
在哪里记录了这里可以包括哪种关系?特别是,Hypernym"is-a"和Hypernym"子类 - 关系类型之间是否存在有意义的差异?fSymbol值记录在哪里?
请注意,我可以在评论部分列出所有这些内容,因此选择写一个答案,我只是想回答以下问题,因为它以粗体突出显示。
在哪里记录了哪些类型的关系可以包含在这里?特别是,Hypernym“is-a”和 Hypernym“subclass-of”关系类型之间是否存在有意义的区别?fSymbol 值记录在哪里?
f符号
完整的 fSymbol 列表可以在 BabelNet-API-4.0\resources\jlt 文件夹中的 pointer.txt 文件中引用。我不会称它们是完整记录的,但您可以在其中找到它们,而且我还没有在 BabeNet 网站上的任何地方找到此列表。另外,我不得不缩短下面的列表,因为我不想让这个线程超载。您必须从此处下载 api 文件夹并将其解压。
%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. ****
Run Code Online (Sandbox Code Playgroud)
注意我找不到任何特定的文档,但 BabelPointer.java 列出了所有指针及其到 RelationGroup 的映射(HYPERNYM、HYPONYM、MERONYM、HOLONYM、OTHER),有 is-a、has-kind、has-part、part- of、派生自关系类型,通常与其他关系类型一起使用
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);
Run Code Online (Sandbox Code Playgroud)
现在下面的指针指的是航空电子设备,指的是 GPS bn:00040680n是航空电子设备bn:00007477n的子类, 广义 GPS is-a 卫星导航bn:00732900n和 is-a 系统bn:00057078n
{
"pointer": {
"name": "subclass_of",
"fSymbol": "wd21",
"relationGroup": "HYPERNYM",
"shortName": "subclass_of",
"isAutomatic": false
},
"language": "MUL",
"target": "bn:00007477n",
"normalizedWeight": 0.0,
"weight": 0.0
}
Run Code Online (Sandbox Code Playgroud)
可能有关系,但可能还有更多继续阅读。
is-a:用于将某些内容合并到更一般的类别下。
子类
子类:子类,是超类的“派生类”、继承类或子类。
我还发现可能有更多类型(等价(skos:exactMatch))。我从这里获取了下图,其中讨论了有关手动本体构建的更多信息,您可以阅读它以获得更多见解。
最后,该线程深入讨论了区分子类型和子类的问题,这可能对您的情况有所帮助。
| 归档时间: |
|
| 查看次数: |
414 次 |
| 最近记录: |