Создать json файл для пользовательских типов объектов в Watson Knowledge Studio - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь загрузить набор настроенных типов и подтипов сущностей для экземпляра WKS.

Вот представление интерфейса WKS в разделе, где вы можете определить сущности и подобъекты.

Here is a view of WKS interface in the section where you can define entities and sub-entities

Кнопка загрузки запрашивает файл json.

Я ранее создал набор вручную и загрузил файл json.

Первые его строки следующие:

{"entityTypes":[{**"id":"78361798-b77e-4728-9b6a-f56539c12bcd"**,"label":"Calificativo","sireProp":{"mentionType":null,"subtypes":["Bueno_extremo","Bueno_moderado","Regular","Malo_moderado","Malo_extremo"],"roles":["78361798-b77e-4728-9b6a-f56539c12bcd"],"clazz":null,"color":null,"hotkey":null,"backGroundColor":null,"active":true,"roleOnly":false},"creationDate":1583241330349,"source":null,"modifiedDate":0,"typeType":null,"typeClass":null,"typeVersion":null,"typeDesc":null,"typeSuperType":null,"typeSuperTypeId":null,"typeCreateDate":null,"typeUpdateDate":null,"typeProvenance":null,"alchemyAPITypes":null,"nluAPITypes":null},{**"id":"daecb92b-0ce7-4a47-942a-68b50d0cb2fd"**,"label":"TV","sireProp":{"mentionType":null,"subtypes":["Decodificador","Servicio_de_tv"],"roles":

В целом структура содержимого понятна, но существуют идентификаторы как для набора сущностей, так и для содержимого.

Интересно, есть ли способ узнать заранее или сгенерировать эти идентификаторы, чтобы я мог сгенерировать целое json с типами и подтипами, которые я хочу использовать, и позже загрузить его.

I попытался использовать "" вместо идентификаторов, но получил сообщение об ошибке, и загрузка не была разрешена.

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020

Этот сценарий Python создает файл json в формате, понятном для WKS:

import uuid
import json

# Generate IDs
ent_id,lbl01_id = uuid.uuid4(), uuid.uuid4()

json_out = {}
json_out.update({
                "entityTypes":[{
                    "id":str(lbl01_id), "label":"Calificativo",
                    "sireProp":
                        {
                        "mentionType":None,
                        "subtypes":["Bueno_extremo", "Bueno_moderado", "Regular", "Malo_moderado", "Malo_extremo"],
                        "roles":[str(lbl01_id)], "clazz":None, # Roles relates to self & other labels, if any
                        "color":None, "hotkey":None, "backGroundColor":None, "active":True, "roleOnly":False
                        },
                    "creationDate":1583241330349, "source":None, "modifiedDate":1583247016579, "typeType":None,
                    "typeClass":None, "typeVersion":None, "typeDesc":None, "typeSuperType":None, "typeSuperTypeId":None,
                    "typeCreateDate":None, "typeUpdateDate":None, "typeProvenance":None, "alchemyAPITypes":None,
                    "nluAPITypes":None
                    }],
                "sireInfo":{
                    "entityProp":{
                        "mentionType":[{"color":"white", "hotkey":"1", "backGroundColor":"#AA00FF", "name":"NAM"},
                                       {"color":"black", "hotkey":"2", "backGroundColor":"#00FF7F", "name":"NOM"},
                                       {"color":"black", "hotkey":"3", "backGroundColor":"#AAFFFF", "name":"PRO"},
                                       {"color":"white", "hotkey":"4", "backGroundColor":"gray", "name":"NONE"}],
                        "subtypes":None,
                        "roles":None,
                        "clazz":[{"color":"#A5A5A5", "hotkey":"3", "backGroundColor":"white", "name":"SPC"},
                                 {"color":"black", "hotkey":"2", "backGroundColor":"#00FF7F", "name":"NEG"},
                                 {"color":"black", "hotkey":"1", "backGroundColor":"#AAFFFF", "name":"GEN"}],
                        "color":None,
                        "hotkey":None,
                        "backGroundColor":None,
                        "active":True,
                        "roleOnly":False
                        },
                    "relationProp":{
                        "tense":[{"name":"PAST"}, {"name":"PRESENT"}, {"name":"FUTURE"}, {"name":"UNSPECIFIED"}],
                        "modality":[{"name":"ASSERTED"}, {"name":"OTHER"}],
                        "clazz":[{"name":"SPECIFIC"}, {"name":"NEG"}, {"name":"OTHER"}],
                        "backGroundColor":None, "color":None, "hotkey":None, "active":True}
                    },
                "functionalEntityTypes":[
                    {"id":"CATCH_ALL_ENTITY_ID", "label":"*",
                    "sireProp":{
                        "mentionType":None, "subtypes":None, "roles":None, "clazz":None, "color":None,
                        "hotkey":None, "backGroundColor":None, "active":True, "roleOnly":False},
                    "creationDate":1487227572757, "source":None, "modifiedDate":0, "typeType":None,
                    "typeClass":None, "typeVersion":None, "typeDesc":None, "typeSuperType":None,
                    "typeSuperTypeId":None, "typeCreateDate":None, "typeUpdateDate":None, "typeProvenance":None,
                    "alchemyAPITypes":None, "nluAPITypes":None
                    }],
                "pid":str(ent_id), "modified_date":1583247016579, "kgimported":False
                })

with open('json_file.json', 'w') as outfile:
    json.dump(json_out, outfile)

. Это создает только 1 объект; чтобы генерировать больше, просто между "id" и "nluAPITypes", столько раз, сколько нужно добавить сущностей.

Здесь также может быть включен "relationsTypes"

0 голосов
/ 31 марта 2020

WKS не поддерживает импорт настроенных json файлов, которые отличаются от экспортируемых из рабочей области WKS в соответствии с документом . Однако, насколько я пытался, UUID мог быть допустимым значением поля id, сгенерированным следующей командой bash.

$ uuidgen | tr '[:upper:]' '[:lower:]'
...