@@ -399,7 +399,7 @@ def __str__(self):
399399 @classmethod
400400 def from_json (cls , g ):
401401 """Builds a `Graph` from a json object."""
402- graph = [Relation .from_json (x ) for x in g
402+ graph = [Relation .from_json (x , top_level = True ) for x in g
403403 if x .get ('type' ) == 'relation' ]
404404 return cls (graph )
405405
@@ -426,7 +426,8 @@ def __init__(
426426 qualified ,
427427 artificial_type ,
428428 _features ,
429- confidence ):
429+ confidence ,
430+ top_level ):
430431 self .qualifiers = qualifiers
431432 self .question = question
432433 self .question_auxiliary = question_auxiliary
@@ -437,17 +438,12 @@ def __init__(
437438 self .verb_modifiers_object_suffix = verb_modifiers_object_suffix
438439 self .prepositions = prepositions
439440 self .qualified_object = qualified_object
440- if inferred is not None :
441+ if top_level :
441442 self .inferred = inferred
442- if nested is not None :
443443 self .nested = nested
444- if qualified is not None :
445444 self .qualified = qualified
446- if artificial_type is not None :
447445 self .artificial_type = artificial_type
448- if _features is not None :
449446 self ._features = _features
450- if confidence is not None :
451447 self .confidence = confidence
452448
453449 def __repr__ (self ):
@@ -493,7 +489,7 @@ def __str__(self):
493489 return output
494490
495491 @classmethod
496- def from_json (cls , r ):
492+ def from_json (cls , r , top_level = False ):
497493 """Builds a `Relation` from a json object."""
498494 qualifiers = r .get ('qualifiers' )
499495 question = r .get ('question' )
@@ -517,12 +513,12 @@ def from_json(cls, r):
517513 Entity .from_json (
518514 r ['qualified_object' ]) if type_ == 'entity' else Relation .from_json ( # noqa
519515 r ['qualified_object' ]) if type_ == 'relation' else None )
520- inferred = r .get ('inferred' , None )
521- nested = r .get ('nested' , None )
522- qualified = r .get ('qualified' , None )
516+ inferred = r .get ('inferred' , False )
517+ nested = r .get ('nested' , False )
518+ qualified = r .get ('qualified' , False )
523519 artificial_type = r .get ('artificialType' , None )
524- _features = r .get ('_features' , None )
525- confidence = r .get ('confidence' , None )
520+ _features = r .get ('_features' , [] )
521+ confidence = r .get ('confidence' , 1.0 )
526522 return cls (
527523 qualifiers ,
528524 question ,
@@ -539,7 +535,8 @@ def from_json(cls, r):
539535 qualified ,
540536 artificial_type ,
541537 _features ,
542- confidence )
538+ confidence ,
539+ top_level )
543540
544541 def get_entities (self , ner_only = False ):
545542 """Gets the entities of a `Relation`.
0 commit comments