package Ġcom . eg m . st elli o . entity . service Ċ Ċ import Ġcom . eg m . st elli o . entity . model .* Ċ import Ġcom . eg m . st elli o . entity . repository . Attribute Subject Node Ċ import Ġcom . eg m . st elli o . entity . repository . Entity Subject Node Ċ import Ġcom . eg m . st elli o . entity . repository . Neo 4 j Repository Ċ import Ġcom . eg m . st elli o . entity . repository . Property Repository Ċ import Ġcom . eg m . st elli o . entity . repository . Relationship Repository Ċ import Ġcom . eg m . st elli o . shared . model .* Ċ import Ġcom . eg m . st elli o . shared . util . Json Ld Utils Ċ import Ġcom . eg m . st elli o . shared . util . Json Ld Utils . expand Json Ld Key Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ import Ġjava . net . URI Ċ Ċ @ Component Ċ class ĠEntity Attribute Service ( ĊĠĠĠ Ġprivate Ġval Ġentity Service : ĠEntity Service , ĊĠĠĠ Ġprivate Ġval Ġne o 4 j Repository : ĠNeo 4 j Repository , ĊĠĠĠ Ġprivate Ġval Ġproperty Repository : ĠProperty Repository , ĊĠĠĠ Ġprivate Ġval Ġrelationship Repository : ĠRelationship Repository Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( java Class ) ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġfun Ġpartial Update Entity Attribute ( ĊĠĠĠĠĠĠĠ Ġentity Id : ĠURI , ĊĠĠĠĠĠĠĠ Ġexpanded Payload : ĠMap < String , ĠList < Map < String , ĠList < Any >> >>, ĊĠĠĠĠĠĠĠ Ġcontexts : ĠList < String > ĊĠĠĠ Ġ): ĠUpdate Result Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexpanded AttributeName Ġ= Ġexpanded Payload . keys . first () ĊĠĠĠĠĠĠĠ Ġval Ġattribute Values Ġ= Ġexpanded Payload . values . first () ĊĊĠĠĠĠĠĠĠ Ġlogger . debug (" Updating Ġattribute Ġ$ expanded AttributeName Ġof Ġentity Ġ$ entityId Ġwith Ġvalues : Ġ$ attribute Values ") ĊĊĠĠĠĠĠĠĠ Ġval Ġupdate Result Ġ= Ġattribute Values . map Ġ{ Ġattribute Instance Values Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdataset Id Ġ= Ġattribute Instance Values . get Dataset Id () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġne o 4 j Repository . has Relationship Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEntity Subject Node ( entityId ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded AttributeName . to Relationship TypeName (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpartial Update Entity Relationship ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded AttributeName . to Relationship TypeName (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Instance Values , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontexts ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġne o 4 j Repository . has Property Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEntity Subject Node ( entityId ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded AttributeName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpartial Update Entity Property ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded AttributeName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Instance Values , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontexts ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠUpdate Attribute Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded AttributeName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUpdate Operation Result . IG NO RED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Unknown Ġattribute Ġ$ expanded AttributeName Ġwith Ġdataset Id Ġ$ dataset Id Ġin Ġentity Ġ$ entityId " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġstill Ġthrowing Ġan Ġexception Ġto Ġtrigger Ġthe Ġrollback Ġof Ġthe Ġtransactions Ġof Ġother Ġinstances ĊĠĠĠĠĠĠĠ Ġif Ġ( update Result . any Ġ{ Ġit . update Operation Result Ġ== ĠUpdate Operation Result . FAILED Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInternal ErrorException (" Partial Ġupdate Ġoperation Ġfailed Ġto Ġperform Ġthe Ġwhole Ġupdate ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġupdate Ġmodified At Ġin Ġentity Ġif Ġat Ġleast Ġone Ġattribute Ġhas Ġbeen Ġupdated ĊĠĠĠĠĠĠĠ Ġif Ġ( update Result . any Ġ{ Ġit . is Successfully Updated () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġne o 4 j Repository . update Entity ModifiedDate ( entityId ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġupdate Result From Detailed Result ( update Result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġpartial Update Entity Relationship ( ĊĠĠĠĠĠĠĠ Ġentity Id : ĠURI , ĊĠĠĠĠĠĠĠ Ġrelationship Type : ĠString , ĊĠĠĠĠĠĠĠ Ġrelationship Values : ĠMap < String , ĠList < Any >>, ĊĠĠĠĠĠĠĠ Ġdataset Id : ĠURI ?, ĊĠĠĠĠĠĠĠ Ġcontexts : ĠList < String > ĊĠĠĠ Ġ): ĠUpdate Attribute Result Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrelationship Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dataset Id Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship Repository . get Relationship Of Subject ( entityId , Ġrelationship Type , Ġdataset Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship Repository . get Relationship Of Subject ( entityId , Ġrelationship Type ) ĊĠĠĠĠĠĠĠ Ġval Ġrelationship Updates Ġ= Ġpartial Update Relationship Of Attribute ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentity Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship Values ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġattributes Of Relationship Updates Ġ= Ġpartial Update Attributes Of Attribute ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship Values , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontexts ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( relationship Updates Ġ&& Ġattributes Of Relationship Updates ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUpdate Attribute Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpand Json Ld Key ( relationship Type , Ġcontexts ) !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUpdate Operation Result . UPDATED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġelse ĠUpdate Attribute Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpand Json Ld Key ( relationship Type , Ġcontexts ) !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUpdate Operation Result . FAILED , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Partial Ġupdate Ġoperation Ġfailed Ġto Ġperform Ġthe Ġwhole Ġupdate " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġpartial Update Entity Property ( ĊĠĠĠĠĠĠĠ Ġentity Id : ĠURI , ĊĠĠĠĠĠĠĠ Ġexpanded PropertyName : ĠString , ĊĠĠĠĠĠĠĠ Ġproperty Values : ĠMap < String , ĠList < Any >>, ĊĠĠĠĠĠĠĠ Ġdataset Id : ĠURI ?, ĊĠĠĠĠĠĠĠ Ġcontexts : ĠList < String > ĊĠĠĠ Ġ): ĠUpdate Attribute Result Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproperty Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dataset Id Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty Repository . getProperty Of Subject ( entityId , Ġexpanded PropertyName , Ġdataset Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty Repository . getProperty Of Subject ( entityId , Ġexpanded PropertyName ) ĊĠĠĠĠĠĠĠ Ġval Ġproperty Updates Ġ= Ġpartial Update Property Of Attribute ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty Values ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġattributes Of Property Updates Ġ= Ġpartial Update Attributes Of Attribute ( property , Ġproperty Values , Ġcontexts ) ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( property Updates Ġ&& Ġattributes Of Property Updates ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUpdate Attribute Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded PropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUpdate Operation Result . UPDATED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġelse ĠUpdate Attribute Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded PropertyName , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUpdate Operation Result . FAILED , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Partial Ġupdate Ġoperation Ġfailed Ġto Ġperform Ġthe Ġwhole Ġupdate " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġpartial Update Attributes Of Attribute ( ĊĠĠĠĠĠĠĠ Ġattribute : ĠAttribute , ĊĠĠĠĠĠĠĠ Ġattribute Values : ĠMap < String , ĠList < Any >>, ĊĠĠĠĠĠĠĠ Ġcontexts : ĠList < String > ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġattribute Values . filter Keys Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( attribute Ġis ĠRelationship ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! NG S ILD _ REL ATION SH IPS _ CORE _ MEMBER S . contains ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! NG S ILD _ PROPERTIES _ CORE _ MEMBER S . contains ( it ) ĊĠĠĠĠĠĠĠ Ġ}. map Values Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġattribute Ġattributes Ġcannot Ġbe Ġmulti - attributes , Ġexpand Ġas ĠMap ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJson Ld Utils . expand Value As Map ( it . value ) ĊĠĠĠĠĠĠĠ Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġattribute Of AttributeName Ġ= Ġit . key ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġne o 4 j Repository . has Relationship Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttribute Subject Node ( attribute . id ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Of AttributeName . to Relationship TypeName () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrelationship Of Attribute Ġ= Ġrelationship Repository . get Relationship Of Subject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute . id (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Of AttributeName . to Relationship TypeName () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpartial Update Relationship Of Attribute ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship Of Attribute , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute . id (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Of AttributeName . to Relationship TypeName (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġne o 4 j Repository . has Property Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAttribute Subject Node ( attribute . id ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpand Json Ld Key ( attribute Of AttributeName , Ġcontexts ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproperty Of Attribute Ġ= Ġproperty Repository . getProperty Of Subject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute . id (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpand Json Ld Key ( attribute Of AttributeName , Ġcontexts ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpartial Update Property Of Attribute ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty Of Attribute , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Attribute OfType ( it . value , ĠJson Ld Utils . NG S ILD _ REL ATION SHIP _ TYPE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġng si Ld Relationship Ġ= ĠNg si Ld Relationship ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Of AttributeName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( it . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity Service . create Attribute Relationships ( attribute . id (), ĠlistOf ( ng si Ld Relationship )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( is Attribute OfType ( it . value , ĠJson Ld Utils . NG S ILD _ PROPERTY _ TYPE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġng si Ld Property Ġ= ĠNg si Ld Property ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpand Json Ld Key ( attribute Of AttributeName , Ġcontexts ) !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( it . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentity Service . create Attribute Properties ( attribute . id (), ĠlistOf ( ng si Ld Property )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. all Ġ{ Ġit Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġpartial Update Relationship Of Attribute ( ĊĠĠĠĠĠĠĠ Ġrelationship Of Attribute : ĠRelationship , ĊĠĠĠĠĠĠĠ Ġattribute Id : ĠURI , ĊĠĠĠĠĠĠĠ Ġrelationship Type : ĠString , ĊĠĠĠĠĠĠĠ Ġdataset Id : ĠURI ?, ĊĠĠĠĠĠĠĠ Ġrelationship Values : ĠMap < String , ĠList < Any >> ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Relationship Target Of Attribute ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship Type , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship Values ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġupdated Relationship Ġ= Ġrelationship Of Attribute . update Values ( relationship Values ) ĊĠĠĠĠĠĠĠ Ġrelationship Repository . save ( updated Relationship ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġpartial Update Property Of Attribute ( ĊĠĠĠĠĠĠĠ Ġproperty Of Attribute : ĠProperty , ĊĠĠĠĠĠĠĠ Ġproperty Values : ĠMap < String , ĠList < Any >> ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġupdated Property Ġ= Ġproperty Of Attribute . update Values ( property Values ) ĊĠĠĠĠĠĠĠ Ġproperty Repository . save ( updated Property ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġupdate Relationship Target Of Attribute ( ĊĠĠĠĠĠĠĠ Ġattribute Id : ĠURI , ĊĠĠĠĠĠĠĠ Ġrelationship Type : ĠString , ĊĠĠĠĠĠĠĠ Ġdataset Id : ĠURI ?, ĊĠĠĠĠĠĠĠ Ġrelationship Values : ĠMap < String , ĠList < Any >> ĊĠĠĠ Ġ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ ĠJson Ld Utils . extract Relationship Object ( relationship Type , Ġrelationship Values ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġobject Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġne o 4 j Repository . update Relationship Target Of Subject ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelationship Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdataset Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fold ({ Ġfalse Ġ}, Ġ{ Ġit Ġ}) Ċ } Ċ