ã¯ããã« å»ºèšæ¥çã«ããã BIMïŒBuilding Information ModelingïŒã®å°å
¥ã¯çå®ã«é²ãã§ããŸããBIM ã¯å»ºç©ã® 3D 圢ç¶ã«å ããŠãåéšæã®å¯žæ³ã»ææã»æ§èœãšãã£ã屿§æ
å ±ãäžå
çã«æã€ãããã°ã建ç©ã®ããŒã¿ããŒã¹ããšãèšããååšã§ãããããããã®è±å¯ãªããŒã¿ã¯ãåŸè¿°ããããã€ãã®çç±ãããååã«æŽ»çšãããŠããªãããšãã声ãããè³ã«ããŸãã ãããããªããBIM ããŒã¿æŽ»çšã«åããäžã€ã®ã¢ãããŒããšããŠæ³šç®ãããŠããã®ãçæ AI ã§ããè¿å¹Žã®çæ AI ã®çºå±ã«ããããèªç¶èšèªã§ BIM ããŒã¿ãèªã¿æžãããããAI ãšãŒãžã§ã³ãã建ç©ããŒã¿ãè§£éããŠæ¬¡ã®ã¢ã¯ã·ã§ã³ã«ç¹ããããšãã£ãäœ¿ãæ¹ãçŸå®çã«ãªãã€ã€ãããŸããæ¬ããã°ã§ã¯ãAWS Summit Japan 2025 ã®å»ºèšã»äžåç£ããŒã¹ã§å±ç€ºãã IFC Viewer with GraphRAG ã顿ã«ãIFC ãã¡ã€ã«ãã°ã©ãã«å€æããŠã°ã©ãããŒã¿ããŒã¹ã«æ ŒçŽããçæ AI ãšãŒãžã§ã³ããæ
å ±ãåãåãããä»çµã¿ããå®è£
ã¬ãã«ã§è§£èª¬ããŸãã ãªãæ¬ããã°ã¯ã1ã2 ç« ã§ããªããã®æ§æã«ããã®ãããšããã¢ãããŒããšèšèšã®èãæ¹ãã3 ç« ã§ãã©ãå®è£
ãããããšããè©³çŽ°ãæ±ãã4 ç« ã§çºå±çãªæ¡åŒµã«è§Šããæ§æã§ãã3 ç« ä»¥é㯠RDF ã°ã©ãã®ã¢ããªã³ã°ã AI ã¢ããªã®å®è£
ã«èžã¿èŸŒãå
容ã®ãããã°ã©ãããŒã¿ããŒã¹ãçæ AI ã®éçºçµéšããããšèªã¿é²ãããããªããŸãããåç¯ã®åé ã«èŠçŽã眮ããŠããããã詳现ãèªãŸãªããŠãå
šäœã®æµãã¯è¿œããããã«ãªã£ãŠããŸãã 1. BIM ããŒã¿ã AI ããæ±ãã¢ãããŒã BIM ãæ®åããã«ã€ãã3D 圢ç¶ãšå±æ§æ
å ±ãäžå
çã«æã€ã建ç©ã®ããžã¿ã«ããŒã¿ãããæ¡ä»¶ããšã«èç©ãããããã«ãªããŸãããçæ AI ãæŽ»çšããããšã§ãããããããŒã¿ã«èªç¶èšèªã§åãåãããããAI ãšãŒãžã§ã³ãã«è§£éãããŠæ¬¡ã®äœæ¥ãžç¹ããããšãã£ãå¿çšã«ç¹ããããšãã§ããŸãã ãã®å
¥å£ãšããŠãŸãåè£ã«ãªãã®ããåçš® BIM ãã©ãããã©ãŒã ãæäŸãã REST API ããAI ãšãŒãžã§ã³ãã® Toolãããã㯠MCPïŒModel Context ProtocolïŒãµãŒããŒçµç±ã§æž¡ãæ¹æ³ã§ããBIM ããŒã¿ã« API çµç±ã§ã¢ã¯ã»ã¹ã§ãããµãŒãã¹ã¯å¢ããŠãããããŒã¿ãå¥ã®åœ¢åŒã«å€æãããå€éšã«æžãåºãããããããã©ãããã©ãŒã ã«çœ®ãããŸãŸ AI ããåç
§ã§ããŸããå°å
¥ã®æéãå°ãããèªèšŒèªå¯ã®ä»çµã¿ãããã¥ãŒã¯ãŒãŸã§ BIM ãã©ãããã©ãŒã ã§å®çµããå©ç¹ããããŸããåé¢ãååŸã§ããããŒã¿ãããžãã¯ã¯ããã³ããŒãæäŸãã API ã®ç¯å²ã«çžãããŸããAPI ãæ³å®ããŠããªãåãå£ã§ã®éèšããä»ã·ã¹ãã ã®ããŒã¿ãšã®çªãåãããšãã£ãäœ¿ãæ¹ã«ã¯å¯Ÿå¿ãã«ãããšããå¶çŽããããŸãã ïŒè£è¶³: MCP ã¯ã¢ããªã±ãŒã·ã§ã³ã AI ã«ããŒã«ãããŒã¿ãœãŒã¹ãæäŸããããã®å
±éãããã³ã«ã§ã察å¿ããŠããã°ç°ãªã AI ã¯ã©ã€ã¢ã³ãããåãããŒã«ã䜿ããŸãïŒ ãªãŒãã³ãã©ãŒããã㪠BIM (IFC) ãèµ·ç¹ã«ãã ç¹å®ãã³ããŒã® API ç¯å²ã«çžãããããªãå Žåãæ¥çæšæºã®ãªãŒãã³ãã©ãŒãããã§ãã IFCïŒIndustry Foundation ClassesïŒ ãèµ·ç¹ã«ããæ¹æ³ããããŸããIFC ã¯ã建èšåéã®ãªãŒãã³ãª BIM æšæºãçå®ãããåœéçãªéå¶å©å£äœã§ãã buildingSMART ãå®ããåœéæšæºãã©ãŒãããã§ãç¹å®ãã³ããŒã®è£œåã«äŸåãã建ç©ããŒã¿ã衚çŸã»äº€æã§ããŸããäž»èŠãª BIM ããŒã«ã¯ IFC ã®ãšã¯ã¹ããŒãã«å¯Ÿå¿ããŠãããããç¹å®ã®è£œåã§äœæãã BIM ã¢ãã«ã§ãã£ãŠã IFC 圢åŒã«å€æã§ããŸãã ãã ããIFC 㯠AI ããã®ãŸãŸè§£éã§ãã圢åŒã«ã¯ãªã£ãŠããŸãããIFC 㯠STEP ç©çãã¡ã€ã«åœ¢åŒãšããããã¹ã圢åŒã§ãäžèº«ã¯æ¬¡ã®ããã«ããšã³ãã£ãã£ã #1234= ã®ãã㪠ID çªå·ã§ç¹ãã ãã©ãããªæ§é ã«ãªã£ãŠããŸãã #129= IFCBUILDING('0w984V0GL6yR4z75XVLWOr',#41,'',$,$,#32,$,'',.ELEMENT.,$,$,#125); #138= IFCBUILDINGSTOREY('0w984V0GL6yR4z75YWgVfX',#41,'Nivel 1',$,'Nivel:Nivel 1',#136,$,'Nivel 1',.ELEMENT.,0.); #186= IFCWALLSTANDARDCASE('2idC0G3ezCdhA9WVjWemc$',#41,'Muro básico:Partición con capa de yeso:163541',...,#155,#182,'163541'); #6723= IFCWINDOW('2idC0G3ezCdhA9WVjWe$OB',#41,'Ventana simple:100 x 100 cm:164193',...,#25036,#6717,'164193',2.3,1.); å£ ( #186 ) ãæå±ããé ( #138 ) 㯠#136 çµç±ã§ãã©ããçª ( #6723 ) ãåãŸã£ãŠããå£ã¯ IFCRELVOIDSELEMENT / IFCRELFILLSELEMENT ãä»ããŠåç
§ããããšãã£ãå
·åã§ãããšã³ãã£ãã£ã®éïŒäžèšã¯æ°äžè¡ã®ãã¡ã®äžéšã§ãïŒãçžå¿ã«ãããAI ã«ãã®çããã¹ããæž¡ããŠãã®ãŸãŸè§£éãããã®ã¯çŸå®çã§ã¯ãããŸããã ãã® IFC ãæ±ããããããã¢ãããŒããã倧ãã 2 ã€ãããŸãã1 ã€ã¯ IFC ãè§£éã§ããã©ã€ãã©ãªã䜿ã£ãŠãã®å Žã§èªãæ¹æ³ïŒAïŒããã 1 ã€ã¯ IFC ãå¥ã®ããŒã¿ã¢ãã«ã«å€æããããŒã¿ããŒã¹ã«æ ŒçŽããŠããåãåãããæ¹æ³ïŒBïŒã§ãã (A) IFC ãæ±ããã©ã€ãã©ãªã AI ã®ããŒã«ãšããŠæž¡ã 1 ã€ç®ã¯ãIFC ãæ±ãããªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ïŒOSSïŒã Tool ãšããŠæž¡ãããšãŒãžã§ã³ãã«æ¢çŽ¢ãããæ¹æ³ã§ãã代衚ç㪠OSS ã IfcOpenShell ã§ãå
ã»ã©ã®ãããªçã® STEP ããã¹ããçŽæ¥ãã©ãå¿
èŠã¯ãããŸããã by_type("IfcWall") ã§å£ãäžèЧãããã #136 ã®ãããªçªå·ã§ã¯ãªã wall.Name ã®ããã«å±æ§åã§ã¢ã¯ã»ã¹ããããããèŠçŽ ãåç
§ããŠããé¢é£èŠçŽ ãéåãã«ãã©ã£ãããšãIFC ã®æ§é ãæ±ãããã圢ã§èªã¿åãããšãã§ããŸããå
ã»ã©æãããã©ããããåç
§ã®è€éãã®å€ãã¯ãããããã©ã€ãã©ãªãåžåããŸãã äžæ¹ã§ããã®ã¢ãããŒãã«ã¯èæ
®ãã¹ãç¹ããããŸããåãåããã®ãã³ã« IFC ãã¡ã€ã«ãèªã¿èŸŒãã§æ¢çŽ¢ãã圢ã«ãªãããããšãŒãžã§ã³ãã«ã©ã€ãã©ãªã® API ãçµã¿åãããŠç®çã®æ
å ±ãŸã§ãã©ããããšãåãåããã®å
容ã«ãã£ãŠã¯æ¢çŽ¢ã®ææ°ãèªã¿ã«ãããå¿çæéãå®å®ããŸããããŸããè€æ°ã®å»ºç©ããŸããã æšªææ€çŽ¢ãã倧éèŠçŽ ã®éèšã®ããã«ããããããæŽçãããããŒã¿ããåæãšããçšéãšã¯çžæ§ããããããŸããã1 ãã¡ã€ã«ã察象ãšããçŽ æŽãªåç
§ã«ã¯æè»œã§æå¹ã§ããäžæ¹ãèŠæš¡ãæšªææ§ãå¢ãã»ã©è¿œå ã®å·¥å€«ãèŠããããšããäœçœ®ã¥ãã§ãã (B) IFC ãæ§é åããŠããŒã¿ããŒã¹ã«æ ŒçŽããAI ãåãåããã 2 ã€ç®ã¯ãIFC ãäžåºŠè§£éããçšéã«åãããã¹ããŒãã§ããŒã¿ããŒã¹ã«æ ŒçŽããŠããããšãŒãžã§ã³ãã«ã¯ãããŒã¿ããŒã¹ãåãåããã Toolããæž¡ãæ¹æ³ã§ããåãåããã®ãã³ã«ãã¡ã€ã«ãæ¢çŽ¢ãã代ããã«ããããããæŽçããç¶æ
ãçšæããŠããããšããçºæ³ã§ãã ããŒã¿ã®æ§é ãæ¡ä»¶ã»çšéã«åãããŠèšèšã§ããã®ã§ãã«ã¹ã¿ãã€ãºã®èªç±åºŠãæãé«ããªããŸããè€æ°ãã¡ã€ã«ããŸããã æšªææ€çŽ¢ãéèšãæžããããåœ¢ã«æŽããããä»ã·ã¹ãã ã®ããŒã¿ãšçªãåãããããã¹ããŒãã«ããããšã(A) ã§ã¯é£ããã£ãçšéã«ã察å¿ã§ããŸããåé¢ã倿ãã€ãã©ã€ã³ãšããŒã¿ããŒã¹ã®äž¡æ¹ãçšæã»éçšããå¿
èŠããããå°å
¥ã³ã¹ãã¯æãé«ããªããŸãã æ¬ããã°ã§æ±ãã¢ãããŒã ãã³ã㌠APIïŒæåã«è§Šããæ¹æ³ïŒãã©ã€ãã©ãªã§ã®çŽæ¥æ¢çŽ¢ïŒAïŒãããŒã¿ããŒã¹ãžã®æ§é åïŒBïŒãšãåŸãã«ããã»ã©æ§ç¯ã®æéã¯å¢ããŸããããã®åãä»»æã®æ§é ã§ããŒã¿ãæ ŒçŽã§ããæ€çŽ¢ã»éèšã»æšªæåæã®èªç±åºŠãé«ããªããŸããæ¬ããã°ã§ã¯ããã® (B) ã®ã¢ãããŒããæ¡çšããå®è£
äŸãåãäžããŸããæ¬¡ã®ç« ã§ã¯ãããŒã¿ããŒã¹ãšããŠäœãéžã³ãã©ãçµã¿ç«ãŠãããèŠãŠãããŸãã 2. IFC ãã°ã©ãã«å€æããŠãã°ã©ãããŒã¿ããŒã¹ã«æ ŒçŽãã æ¡çšããã¢ãããŒããäžèšã§ãŸãšãããšããIFC ãã°ã©ã (RDF ã°ã©ã) ã«å€æããŠã°ã©ãããŒã¿ããŒã¹ (Amazon Neptune Serverless) ã«æ ŒçŽããAI ãšãŒãžã§ã³ããã¯ãšãªèšèª (SPARQL) ã§åãåãããããšãããã®ã§ãã (B) ã®ããŒã¿ã¢ãã«ãšã㊠RDF ã°ã©ããéžãã çç±ã¯ãBIM ããŒã¿ã®æ§è³ªã«ãããŸããBIM ããŒã¿ã¯ãå£ãçªãå«ãããéãèŠçŽ ãæã€ããšãã£ããã¢ãå士ã®é¢ä¿ã®éãŸãã§ãæ§é çã«ã¯ã°ã©ããã®ãã®ã§ãããŸããæ€çŽ¢ããéããé¢ä¿ãããã€ããã©ã£ãŠããåãåãããäžå¿ã«ãªããŸãããããããé¢ä¿ããã©ããåŠçã¯ãããŒãã«ã JOIN ãç¶ãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ããããé¢ä¿ããã®ãŸãŸãšããžãšããŠæã€ã°ã©ãããŒã¿ããŒã¹ã®ã»ããçŽ çŽã«èšè¿°ã§ããŸãã RDFïŒResource Description FrameworkïŒã«ã€ããŠãç°¡åã«è£è¶³ããŸããRDF ã¯ãããããäºå®ããäž»èª â è¿°èª â ç®çèªãã® 3 ã€çµïŒããªãã«ïŒã§è¡šã W3C æšæºã®ããŒã¿ã¢ãã«ã§ããããšãã°ãWall_001 㯠Window_002 ãå«ãããšããäºå®ã¯ã Wall_001 - hasSubElement - Window_002 ãšããããªãã«ã§è¡šããŸããããã倧éã«éãããšãããŒãïŒã¢ãïŒãšãšããžïŒé¢ä¿ïŒãããªãã°ã©ãã«ãªããŸãã ã°ã©ãã®è¡šçŸæ¹æ³ã¯ä»ã«ããããŸãããä»å RDF ãéžãã ã®ã¯ãæ¢åã®è³ç£ããã®ãŸãŸæŽ»ãããããã§ããå»ºèšæ¥çã§åºã䜿ãããŠãã IFC ã Linked Building DataïŒLBDïŒç³»ã®ãªã³ãããžãŒã§ RDF åããèãæ¹ã OSS ãæŽåãããŠãããããã« Amazon Neptune ããããŒãžããµãŒãã¹ãšã㊠RDF / SPARQL ããµããŒãããŠããŸããããã«ããã倿ãã€ãã©ã€ã³ãšããŒã¿ããŒã¹éçšã®ããããããŒãããæ§ç¯ããå¿
èŠããããŸããã ã¢ãŒããã¯ã㣠å
šäœã®ã¢ãŒããã¯ãã£ã¯ä»¥äžã®éãã§ãã åŠçã®æµãã¯å€§ãã 2 系統ã«åãããŸãã (1) åã蟌ã¿ç³»: IFC â RDF ã°ã©ã â Neptune ãžã®ããŒã ãŠãŒã¶ãŒã IFC ãã¡ã€ã«ã Amazon S3 ã«ã¢ããããŒã S3 ã€ãã³ãã Amazon EventBridge ã§åããAWS Batch ã§å€æçšã³ã³ãããèµ·å ã³ã³ããå
ã§ IFC â Turtle 倿ããŒã«ãå®è¡ããIFC ã Turtle 圢åŒïŒRDF ã衚çŸããããã¹ã圢åŒã® 1 ã€ïŒã®ãã¡ã€ã«ã«å€æã㊠S3 ãžæžãæ»ã Turtle ãã¡ã€ã«ã® S3 PUT ã€ãã³ãã AWS Lambda ãèµ·åããAmazon Neptune ã® bulk loader API ã§ã°ã©ããããŒã åã Lambda ããåŸæ®µã®åãåããã§äœ¿ãã¡ã¿ããŒã¿ã Turtle ããæœåºã㊠Amazon DynamoDB ã«ä¿å (2) åãåããç³»: ãŠãŒã¶ãŒã®è³ªå â SPARQL â èªç¶èšèªåç ãŠãŒã¶ãŒãããã³ããšã³ãããèªç¶èšèªã®å»ºç©ã«é¢ãã質åãæãã Amazon API Gateway ãçµç±ããŠããšãŒãžã§ã³ãå®è£
ã® Lambda ãèµ·å Lambda ã¯å¯Ÿè±¡ IFC ã®ã¡ã¿ããŒã¿ã DynamoDB ããèªã¿åºããAmazon BedrockïŒAnthropic ClaudeïŒã§ SPARQL ã¯ãšãªãçæ çæãã SPARQL ã Neptune äžã§å®è¡ããçµæã Bedrock ã§èªç¶èšèªã«æŽåœ¢ããŠãŠãŒã¶ãŒã«è¿ã äžéçµæãšæçµåç㯠AWS AppSync Events ã§é
ä¿¡ããããã³ãã® 3D ãã¥ãŒã¯ãŒäžã§å¯Ÿè±¡ãªããžã§ã¯ãããã€ã©ã€ã ãªããããã§åºãŠãããTurtleïŒã¿ãŒãã«ïŒã㯠RDF ã衚çŸãããã¡ã€ã«åœ¢åŒã® 1 ã€ã§ã人éãèªã¿æžãããããããã«èšèšãããæ§æã§ããæ¬¡ç« ã§å®äŸãèŒããŸãã 3. äž»èŠã³ã³ããŒãã³ãã®å®è£
ããããã¯å®è£
ã®äžèº«ã«å
¥ããŸãã(B) ã®ã¢ãããŒãã§å®è£
äžã®ãã€ã³ãã«ãªãã®ã¯ããIFC ãã©ããªåœ¢ã® RDF ã°ã©ãã«ãããããšãAI ã«ã©ã SPARQL ãæžãããããã® 2 ç¹ã§ãããã®ç« ã§ã¯ RDF ã°ã©ãã®ã¢ããªã³ã°ã AI ã¢ããªã®å®è£
ã«èžã¿èŸŒããããã°ã©ãããŒã¿ããŒã¹ãçæ AI ã®éçºçµéšããããšèªã¿é²ããããå
容ã§ããåç¯ã®åé ã«èŠçŽã眮ããŠããã®ã§ã詳现ãé£ã°ããŠãæµãã¯è¿œããããã«ããŠããŸãã 3.1 IFC ã RDF ã°ã©ãã«å€æãã èŠçŽ : IFC ã RDF ã«å€æãããšããå»ºç© â é â èŠçŽ ããšããéå±€æ§é ãããã®ãŸãŸã°ã©ãã®ããŒããšãšããžã«ãªããŸãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®ãã㪠JOIN ãªãã§é¢ä¿ããã©ããã®ã§ãåŸæ®µã®åãåãããæžãããããªããŸãã æ¬ããã°ã§ç޹ä»ãããœãªã¥ãŒã·ã§ã³ã§ã¯ãIFC ããã® RDF å€æã« IFCtoLBD ãšãã OSS ã䜿çšããŠããŸããããã¯ãIFC ãã¡ã€ã«ããã°ã©ããšããŠæ±ãããã RDFïŒTurtle 圢åŒïŒã«å€æããŠãããããŒã«ã§ãã倿åŸã®ããŒã¿ã¯ãLinked Building DataïŒLBDïŒã§æŽåãããŠããå
¬éãªã³ãããžãŒïŒå»ºç©ããŒã¿ã®èªåœãå®ãããã®ã建ç©ããããžãŒã衚ã BOT ãªã©ïŒã«æ²¿ã£ã圢ã«ãªããŸããæ¬å®è£
ã§ã¯ããã®å€æäœæ¥ã AWS Batch ã®ã³ã³ããã§å®è¡ããŠããŸãã 倿åŸã® Turtle ã¯ãããšãã°æ¬¡ã®ããã«ãªããŸãïŒ1 ç« ã§ç€ºãã IFC ãšåã建ç©ã®å€æçµæããã®æç²ã§ãïŒã @prefix bot: <https://w3id.org/bot#> . @prefix props: <http://lbd.arch.rwth-aachen.de/props#> . @prefix inst: <https://lbd.example.com/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . # 建ç©ïŒBuildingïŒâ é
äžã«éã 2 〠inst:building_3a24811f-0105-46f1-b13d-1c585f560635 a bot:Building ; bot:hasStorey inst:storey_3a24811f-0105-46f1-b13d-1c58a0a9fa61 , inst:storey_3a24811f-0105-46f1-b13d-1c58a0a9ff4b ; props:numberOfStoreys_property_simple 2 ; props:globalIdIfcRoot_attribute_simple "0w984V0GL6yR4z75XVLWOr" . # éïŒStoreyïŒãèŠçŽ ïŒElementïŒãå«ã inst:storey_3a24811f-0105-46f1-b13d-1c58a0a9fa61 a bot:Storey ; rdfs:label "Nivel 1" ; props:elevationIfcBuildingStorey_attribute_simple "0."^^xsd:double ; bot:containsElement inst:wall_ac9cc010-0e8f-4c9e-b289-81fb60a309bf , inst:slab_76178dce-ff53-4da5-b52a-f5f1ad7930e7 , inst:window_ac9cc010-0e8f-4c9e-b289-81fb60a3f63e . # ... (door, furniture ãªã©åéã®èŠçŽ ãç¶ã) # å£ïŒElementïŒâ 9 ã€ã®çªããµãèŠçŽ ãšããŠæã€ inst:wall_ac9cc010-0e8f-4c9e-b289-81fb60a309bf a bot:Element ; rdfs:label "Muro básico:Partición con capa de yeso:163541" ; props:globalIdIfcRoot_attribute_simple "2idC0G3ezCdhA9WVjWemc$" ; props:objectTypeIfcObject_attribute_simple "Muro básico:Partición con capa de yeso" ; props:loadBearing_property_simple false ; props:isExternal_property_simple false ; bot:hasSubElement inst:window_ac9cc010-0e8f-4c9e-b289-81fb60a3f60b , inst:window_ac9cc010-0e8f-4c9e-b289-81fb60a3f608 , inst:window_ac9cc010-0e8f-4c9e-b289-81fb60a3f673 . # ... (èš 9 åã®çªãç¶ã) # çªïŒElementïŒâ IFC ç±æ¥ã®å±æ§ããªãã©ã«å€ã§äžŠã¶ inst:window_ac9cc010-0e8f-4c9e-b289-81fb60a3f60b a bot:Element ; rdfs:label "Ventana simple:100 x 100 cm:164193" ; props:globalIdIfcRoot_attribute_simple "2idC0G3ezCdhA9WVjWe$OB" ; props:objectTypeIfcObject_attribute_simple "Ventana simple:100 x 100 cm" ; props:overallWidthIfcWindow_attribute_simple "1."^^xsd:double ; props:overallHeightIfcWindow_attribute_simple "2.3"^^xsd:double ; props:thermalTransmittance_property_simple 6.7069 . 泚ç®ããŠã»ããã®ã¯æ¬¡ã®ç¹ã§ãã bot:Building / bot:Storey ã®é局㚠bot:Element ã®ãã©ãããªèŠçŽ éå : å»ºç© â éãªã©ã銎æã¿ã®ããéå±€é¢ä¿ã bot:hasStorey ã§ã°ã©ãåãããŸããåéãçŽæ¥æã€éšæã¯ bot:containsElement ã§å£ã»ã¹ã©ãã»çªã»æã»å®¶å
·ã»æ¹ç«ãªã©ãæãããããã¯ãã¹ãŠ bot:Element ã¯ã©ã¹ã§ã©ãã«ä»ããããŸã å£ãšçªã®ãããªãµãèŠçŽ ã®é¢ä¿ : å£ã«åãŸã£ãŠããçªã¯ bot:hasSubElement ã§å£ãšé¢ä¿æ§ãæã¡ãŸããäžã®å£ã¯ 9 åã®çªãå«ãèŠçŽ ã§ãããããã©ãã°ããã®å£ã«ã¯çªãäœåãããããšãã質åããã®ãŸãŸ 1 ãããã®ã°ã©ãèµ°æ»ã«ãªããŸã props: æ¥é èŸã®å±æ§ : 寞æ³ã»é¢ç©ã»äœç©ã»ã°ããŒãã« IDã»ç±è²«æµçïŒ thermalTransmittance ïŒã»å€éšé¢ãã©ããïŒ isExternal ïŒãšãã£ã IFC ç±æ¥ã®å±æ§ã¯ã props: åå空éé
äžã®ããããã£ãšããŠãªãã©ã«å€ã§ä»äžãããŸãã props:globalIdIfcRoot_attribute_simple 㯠IFC ã® GlobalId ã«ãããããã¥ãŒã¯ãŒäžã®ãã€ã©ã€ããªã©ã3D ã¢ãã«ã®ãªããžã§ã¯ããšçŽä»ããéã®ããŒã«ãªããŸãã ãã®ããã«ããWall ããŒãã Window ããŒãã hasSubElement ã§å«ã¿ã寞æ³ã¯ãªãã©ã«å±æ§ãšããŠæã€ããšããã·ã³ãã«ãªã¢ãã«ã§å»ºç©å
šäœã衚çŸã§ããŸãããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®ããã«ãå£ããŒãã«ããçªããŒãã«ãã JOIN ããå¿
èŠã¯ãªããé¢ä¿ããã®ãŸãŸèŸ¿ãããšãã§ããŸãã 3.2 ãã¡ã€ã«åäœã§åå空éãåããïŒNamed GraphïŒ èŠçŽ : è€æ°ã® IFC ã 1 ã€ã® Neptune ã«åå±
ããããšèŠçŽ URI ãè¡çªããŸããRDF ã® Named Graph ã§ãã¡ã€ã«ããšã«ã°ã©ã空éãåããŠãããšãè¡çªãé²ãã€ã€ãç¹å®ã®å»ºç©ã ãã«åãåããããã®ãç°¡åã«ãªããŸãã è€æ°ã® IFC ãã¡ã€ã«ã 1 ã€ã® Neptune ã¯ã©ã¹ã¿ã«åå±
ããããšãèŠçŽ URI ãè¡çªããããç¹å®ã®ãã¡ã€ã«ã ãã察象ã«ããåãåãããæžãã¥ãããªã£ããããŸããæ¬å®è£
ã§ã¯ RDF ã® Named Graph ã䜿ãããã¡ã€ã«ããšã«å°çšã®ã°ã©ã空éãå²ãåœãŠãŠããŸãã ãã¡ã€ã« building-A.ifc â Named Graph URI http://example.com/graphs/ifc/building-A ãã¡ã€ã« building-B.ifc â Named Graph URI http://example.com/graphs/ifc/building-B SPARQL ã§ã¯ GRAPH <...> å¥ã§å¯Ÿè±¡ãçµã蟌ãããããåŸè¿°ã®ã¯ãšãªãåºæ¬çã«ãã®åœ¢ã«ãªããŸããNeptune ã® bulk loader ã¯ãªã¯ãšã¹ããã©ã¡ãŒã¿ã® parserConfiguration.namedGraphUri ã§ããŒãå
ã®ã°ã©ããæå®ã§ããã®ã§ãããŒãã®æç¹ã§åå²ããŠããŸãã 3.3 èªç¶èšèªã SPARQL ã«å€æããïŒtext-to-SPARQLïŒ èŠçŽ : ãŠãŒã¶ãŒã®è³ªåã AI ã SPARQL ã«ç¿»èš³ããNeptune ã§å®è¡ããçµæãåã³èªç¶èšèªã«æ»ããŸããLangChain ã®æ¢è£œãã§ãŒã³ãããŒã¹ã«ãLangGraph ã§ 2 ããŒãæ§æã«ãŸãšããŠããŸããã¯ãšãªã®ç²ŸåºŠãäžããããã§äžçªå¹ãã®ã¯ãããææ¬ã®ã¯ãšãªäŸïŒFew-ShotïŒããããã³ããã«å梱ããããšã§ãã åãåããç³»ã®äžå¿ã¯ããŠãŒã¶ãŒã®èªç¶èšèªã®è³ªåã SPARQL ã¯ãšãªã«å€æããçµæãåã³èªç¶èšèªã§è¿ãããããã text-to-SPARQL ã®åŠçã§ãã æ¬å®è£
ã®ããŒã¹ã«ã¯ LangChain ã® create_neptune_sparql_qa_chain ãæ¡çšããŠããŸããããã¯ãã¹ããŒãã AI ã«æž¡ã㊠SPARQL ãçæ â Neptune ã§å®è¡ â çµæã AI ã«æž¡ããŠèªç¶èšèªåããšããäžé£ã®ãã§ãŒã³ãå®è£
ãããŠããŸãã å
šäœã®åŠçãããŒã¯ä»¥äžã®ãšããã§ãã å®è£
äžã¯ãLangGraph ã䜿ã£ãŠ â ã®èŠçŽ éžæããŒã ãš â¡ ã †ããŸãšãã SPARQL åŠçããŒã ã® 2 ããŒãã«ãŸãšããŠãããåŸè
ã®ããŒãã®äžã§ LangChain ã®ãã§ãŒã³ãé ã«åŒã³åºããŠããŸãã AI ã« SPARQL ãçæããããšãã«å¹æçã«ãªãã®ã Few-Shot ããã³ããã£ã³ã° ãã€ãŸãããããã質åã«ã¯ããããã¯ãšãªãæžãããšããäŸé¡ãããã³ããã«å梱ããããšã§ããæ¬å®è£
ã§ã¯ãIFC ãã¡ã€ã«ãããŒãããã¿ã€ãã³ã°ã§ããã® IFC ã«å«ãŸããèŠçŽ ã¿ã€ããåèã«ããªãããåãåããäŸã®è³ªåã»SPARQL ãã¢ãèªåçæã㊠DynamoDB ã«ä¿åããŠããŸããåãåããæã«ã¯ããããèªã¿åºããŠããã³ããã«å·®ã蟌ã¿ãŸãã 3.4 å¿
èŠãªã¹ããŒãã ãã DynamoDB ããèªã¿åºã èŠçŽ : æ¢è£œãã§ãŒã³ããã®ãŸãŸäœ¿ããšãDB äžã®å
šã¯ã©ã¹ã»å
šè¿°èªãããã³ããã«èŒããŠããŸããIFC ã®ããã«èŠçŽ ãå€ããšå¿çãé
ããã³ã¹ããããã¿ãŸããæ¬ç¯ã§ã¯ãå¿
èŠãªã¹ããŒãã ããäºåã«åãåºããŠæã£ãŠãã工倫ã玹ä»ããŸãã LangChain ã® create_neptune_sparql_qa_chain ãããã©ã«ãã®ãŸãŸäœ¿ããšãå
éšã® NeptuneRdfGraph ãã察象ããŒã¿ããŒã¹äžã®ãã¹ãŠã®ã¯ã©ã¹ãšè¿°èªãã¹ããŒããšããŠååŸãããŸãããšããã³ããã«å«ããŸããå°ãããªã³ãããžãŒãªãåé¡ãããŸããããIFC ã®ããã«èŠçŽ ã¿ã€ãã»å±æ§ãå€ãå Žåã¯ãååå¿çã®é
ããšããã³ãããµã€ãºã®å¢å ãåé¡ã«ãªããŸããæ¢è£œãã§ãŒã³ã®ãå
šã¹ããŒãããã®ãŸãŸæž¡ããåæããIFC ã®èŠæš¡ã§ã¯åããªããªãããšããããšã§ãã ããã§æ¬å®è£
ã§ã¯ã NeptuneRdfGraph ãç¶æ¿ãã NamedGraphAwareNeptuneRdf ã¯ã©ã¹ãçšæããæ¬¡ã® 2 ç¹ãå€ããŸããã ã¹ããŒãã¯ãšãªã Named Graph åäœã«çµã : GRAPH <namedGraphUri> { ... } ã§å²ã¿ããã¡ã€ã«åäœã®ã¹ããŒãã ããååŸãã DynamoDB ããäºåããŒãæžã¿ã¹ããŒãã䜿ã : IFC ããŒãæã«ã¹ããŒããæœåºã㊠DynamoDB ã«ä¿åããŠãããåãåããæã¯ Neptune ã§ã¯ãªã DynamoDB ããèªã¿åºã DynamoDB ã«ã¯ãIFC ãã¡ã€ã« 1 ã€ã«ã€ã 1 ã¬ã³ãŒãã®åœ¢ã§ã¡ã¿ããŒã¿ãä¿åããŠããŸãã1 ã¬ã³ãŒãã«ã¯ããã®ãã¡ã€ã«ã®ã¹ããŒãïŒç»å Žããã¯ã©ã¹ãè¿°èªã®äžèЧïŒãFew-Shot çšã®ãµã³ãã«ãªã©ããŸãšããŠããŸããäžèº«ã®ã€ã¡ãŒãžã¯æ¬¡ã®ãšããã§ãã { "loadStatus": "READY", "fileName": "small-l1-p", "namedGraphUri": "http://example.com/graphs/ifc/small-l1-p", "schema": { "classes": [ {"uri": "https://w3id.org/bot#Building", "local": "Building"}, ... ], "rels": [ {"uri": "https://w3id.org/bot#hasSubElement", "local": "hasSubElement"}, ... ], "dtprops": [ {"uri": ".../thermalTransmittance_property_simple", "local": "..."}, ... ], "oprops": [] }, "resourceTypes": { "wall": 3, "window": 10, "door": 1, "slab": 2, ... }, "examples": "<question>...</question><sparql>...</sparql>" } ããã«ãããNeptune ãžã®ã¹ããŒãåãåããã®åŸåŸ©ãçããŠå¿çæéãçããªããããã³ããã«èŒããã¹ããŒãããã®ãã¡ã€ã«ã«å¿
èŠãªåã ãã«ãªãã®ã§ãã³ã³ããã¹ãã®æ¶è²»ãšããŒã¯ã³ã³ã¹ããæããããŸãã åèãŸã§ã«ãæçµçã« AI ãçæãã SPARQL ã¯æ¬¡ã®ãããªåœ¢ã«ãªããŸãïŒãŠãŒã¶ãŒã®è³ªåã¯ãç¹å®ã®å£ã«å«ãŸããçªã®æ°ã¯ïŒãïŒã PREFIX props: <http://lbd.arch.rwth-aachen.de/props#> PREFIX bot: <https://w3id.org/bot#> PREFIX inst: <https://lbd.example.com/> SELECT (COUNT(?window) AS ?windowCount) WHERE { GRAPH <http://example.com/graphs/ifc/small-l1-p> { ?wall props:globalIdIfcRoot_attribute_simple "2idC0G3ezCdhA9WVjWemc$" . ?wall bot:hasSubElement ?window . FILTER(STRSTARTS(STR(?window), STR(inst:window_))) } } GRAPH <...> ã§å¯Ÿè±¡ IFC ãçµãã hasSubElement ã§å£é
äžã®èŠçŽ ããã©ããURI æ¥é èŸ inst:window_ ã®äžèŽã§çªã«çµãããšããæå³ããã®ãŸãŸã¯ãšãªã«ãªã£ãŠããŸããå
ã»ã©ã® 9 åã®çªãæã€å£ã«ãã®ã¯ãšãªãå®è¡ãããšã windowCount = 9 ãè¿ããŸãã 3.5 åäœã€ã¡ãŒãž ãããŸã§ã®ä»çµã¿ãéããšããŠãŒã¶ãŒããèŠãåäœã¯æ¬¡ã®ããã«ãªããŸããèªç¶èšèªã§è³ªåãæãããšãAI ã SPARQL ãçæã»å®è¡ããŠèªç¶èšèªã§åçãè¿ããåæã«è©²åœãã建ç©èŠçŽ ã 3D ãã¥ãŒã¯ãŒäžã§ãã€ã©ã€ããããŸãã 質åããåŽã¯ SPARQL ã IFC ã®å
éšæ§é ãç¥ããªããŠãããçªã®ç±è²«æµçãæããŠããå®¶å
·ã¯å
šéšã§äœåããïŒããšå°ããã ãã§ãåçãšè©²åœç®æã®è¡šç€ºãåæã«åŸãããŸãã1 ç« ã§è§ŠãããIFC ã®æ§é ãç¥ããªããšçŽ æŽãªåãåããããé£ãããšããåé¡ãããã®ç»é¢ã®äžã§è§£æ¶ãããŠããããšãèŠãŠåããŸãã 4. GNNïŒGraph Neural NetworkïŒãšçµã¿åãããçºå± èŠçŽ : text-to-SPARQL ã¯ã決ãŸã£ãåãåãããã«åŒ·ãäžæ¹ãBIM ã®ç¹ããæ¹ãã®ãã®ããäœããäºæž¬ããã¿ã¹ã¯ã¯ãçæ AI åäœã§ã¯æ±ãã¥ããé åã§ããåã RDF ã°ã©ããèšç·ŽããŒã¿ãšã㊠GNN ã䜵çšãããšãå¹²æžè§£æ¶ã»ç±è² è·äºæž¬ã»æå³ä»ãè£åŒ·ãšãã£ããç ç©¶å®çžŸã®ããã¿ã¹ã¯ã«åºããããŸãã çæ AI ã®çºå±ã«ãããã以åã¯èªåã§æ©æ¢°åŠç¿ã¢ãã«ãèšç·ŽããŠããã¿ã¹ã¯ããAI ãšãŒãžã§ã³ãã«ä»»ããã°å¯Ÿå¿ã§ãããå Žé¢ã¯å¢ããŠããŸããæ¬ããã°ã® text-to-SPARQL ããã®æµãã®äžã«ãããŸãã äžæ¹ã§ãBIM ã®ããã«ãããŒããšãšããžã®ç¹ããæ¹ãã®ãã®ã«æå³ãããããŒã¿ã«å¯ŸããŠã¯ãã°ã©ãæ§é ãåŠç¿ãã Graph Neural NetworkïŒGNNïŒã广çãªã¿ã¹ã¯ãæ®ã£ãŠããŸããGNN ã¯ãåããŒãã®å±æ§ãšé£æ¥ããŒãããã®æ
å ±ãéçŽããŠãã¯ãã«è¡šçŸãåŠç¿ããæ·±å±€åŠç¿ã¢ãã«ã§ããã°ã©ãããŒã¿ããŒã¹ã«æ ŒçŽããããŒã¿ããã®ãŸãŸèšç·ŽããŒã¿ã«å©çšã§ãããããæ¬ããã°ã®ã¢ãŒããã¯ãã£ãšçµã¿åãããããæ¡åŒµå
ã§ãã BIM ã®åéã§ GNN ã广ãçºæ®ãããŠãŒã¹ã±ãŒã¹ãã3 ã€ç޹ä»ããŸãããããããçããæ¢åããŒã¿ã®æ€çŽ¢ã§ã¯åŸããããäºæž¬ãå¿
èŠã«ãªãããšããç¹ã§ãGNN ã广çãªé åã§ãã 4.1 å¹²æžè§£æ¶ïŒã¯ã©ãã·ã¥ã»ã¬ãŸãªã¥ãŒã·ã§ã³ïŒã®äºæž¬ å¹²æžãã§ãã¯ããŒã«ãåºåãã倧éã®åè£ã®ãã¡ãå€ãã¯ç¡èŠã§ããéãªãã§ãæ¬åœã«å¯ŸåŠãã¹ãå¹²æžã®ä»åããšãã©ã®ã³ã³ããŒãã³ããåãããã®å€æã«æéãããããŸããããã GNN ã«åããŠããã®ã¯ããã©ããçŽãã¹ããããåšèŸºã³ã³ããŒãã³ããšã®é¢ä¿ã«å·Šå³ãããåäœã®å±æ§ã ãã§ã¯æ±ºãŸããªãããã§ããHu ãïŒ2023, Clash context representation and change component prediction based on graph convolutional network in MEP disciplines ïŒã¯ãå¹²æžãèµ·ããã³ã³ããŒãã³ããšåšèŸºã®äŸåé¢ä¿ãã°ã©ãã§è¡šçŸããGraph Convolutional Network ã§ãã©ã®ã³ã³ããŒãã³ããä¿®æ£ãã¹ããããäºæž¬ããææ³ãææ¡ããŠããŸããåšèŸºãžã®æ³¢åãå å³ããŠå€æã§ããç¹ãç¹åŸŽã§ãã 4.2 éšå±ããŸãŒã³ãè·šãã ç±è² è·ã»ãšãã«ã®ãŒäºæž¬ åŸæ¥ã®æ©æ¢°åŠç¿ã¢ãã«ã¯ã建ç©å
šäœã 1 ãŸãŒã³ãšããŠæ±ãããåãŸãŒã³ãç¬ç«ã«æ±ããã®ã©ã¡ããã§ããŸãŒã³éã®ç±ã®çžäºäœçšãæããããªããšãã課é¡ããããŸãããGNN ã¯ãŸãŒã³ãããŒãããŸãŒã³éã®é£æ¥é¢ä¿ããšããžãšããŠã°ã©ãåã§ããã®ã§ãç±äŒéãæ§é ãšããŠåã蟌ãã äžã§äºæž¬ã§ããŸããLu ãïŒ2023, Temporal graph attention network for building thermal load prediction ïŒã¯ Graph Attention Network ãš GRU ãçµã¿åãããå€ãŸãŒã³ã®ç±è² è·ãåæã«äºæž¬ããã¢ãã«ãææ¡ããŠããŸãã 4.3 BIM ã®æå³ä»ãè£åŒ·ïŒã»ãã³ãã£ãã¯ã»ãšã³ãªããã¡ã³ãïŒ BIM ã¢ãã«ã¯ãèšèšè
ãããŒã«ã®éãã«ãã£ãŠèŠçŽ ã®åé¡ã©ãã«ã屿§ãäžæãã»äžå®å
šã«ãªããããããããäžæµã®æ°éç©ç®ã確èªç³è«ã®èªåãã§ãã¯ã«åœ±é¿ããŸããTarabishy & Sacks ãïŒ2024, Incorporating Context into BIM-Derived DataâLeveraging Graph Neural Networks for Building Element Classification ïŒã¯ãGNN ããŒã¹ã®èŠçŽ åé¡ãã幟äœç¹åŸŽã®ã¿ãèŠãåŸæ¥ææ³ïŒSVM ãªã©ïŒããã粟床ã§äžåãããšã瀺ããŠããŸãããäºæž¬ã©ãã«ãšç»é²ã©ãã«ãé£ãéãèŠçŽ ããèŠã¬ãã¥ãŒåè£ãšããŠæœåºããæŽåæ§ãã§ãã¯ã«ãå¿çšã§ããã«ãŒã«ãšã³ãžã³ã ãã§ã¯é£ãã BIM ããŒã¿ã®åè³ªç¶æã«æå¹ãªé åã§ãã AWS ã§ã®ã¢ãããŒã GNN ã AWS ã§åããå ŽåããŸãåè£ã«ãªãã®ã Amazon Neptune ML ã§ããNeptune ã«æ ŒçŽããã°ã©ããããGNN ã¢ãã«ãèšç·Žã»æšè«ã§ããæ©èœã§ãããŒãåé¡ã»ååž°ããšããžåé¡ã»ååž°ããªã³ã¯äºæž¬ãæšæºã§ãµããŒããããŠããŸãã 5. ãŸãšã æ¬ããã°ã§ã¯ãBIM ããŒã¿ïŒIFCïŒã« AI ãšãŒãžã§ã³ãããã¢ã¯ã»ã¹ããã 3 ã€ã®ã¢ãããŒããæŽçããäžã§ããã®ãã¡ã®ãIFC ãã°ã©ãã«å€æããŠã°ã©ãããŒã¿ããŒã¹ã«æ ŒçŽããAI ãšãŒãžã§ã³ããåãåãããããšããæ§æããå®è£
ã¬ãã«ã§è§£èª¬ããŸãããèŠç¹ã¯æ¬¡ã®ãšããã§ãã IFC â Turtle ã®å€æã AWS Batch ã§å®è¡ãã bot: / props: ç³»ã®ãªã³ãããžãŒã§ãå»ºç© â é â èŠçŽ ãã®ã°ã©ããçæ èªç¶èšèªã®è³ªåãã SPARQL ãçæããŠåçããä»çµã¿ïŒtext-to-SPARQLïŒãæ§ç¯ãåãã¡ã€ã«ã®ã¹ããŒãããµã³ãã«ã¯ãšãªãäºåã«çšæããŠããããšã§ AI ãšãŒãžã§ã³ããçŽ æ©ãæ£ç¢ºã«æ
å ±ãååŸã§ãã 建ç©ã®ã°ã©ãããŒã¿ã¯ãAmazon Neptune ML ã§ GNN ãçµã¿åãããŠãå¹²æžè§£æ¶ã®åªå
åºŠäºæž¬ã»å€ãŸãŒã³ã®ç±è² è·äºæž¬ã»BIM ã®æå³ä»ãè£åŒ·ãšãã£ããçæ AI åäœã§ã¯è§£æ±ºãã«ããã¿ã¹ã¯ã«åºããããå¯èœæ§ããã ãã®ã¢ãããŒãã®äžçªã®å©ç¹ã¯ãããŒã¿æ§é ãèªåãã¡ã®çšéã«åãããŠèšèšã§ããããšã§ãã1 ç« ã§èŠãã¢ãããŒãã®æ¯èŒã«æ»ããšããã³ã㌠API ã®ç¯å²ã§å®çŸããæ¹æ³ããã©ã€ãã©ãªã§ IFC ããã®å Žã§èªãæ¹æ³ã«å¯ŸããŠãæ¬ããã°ã§ç޹ä»ããææ³ã¯ IFC ãäºãæŽçããç¶æ
ã§æã£ãŠããããšã§ãè€æ°ãã¡ã€ã«ã®æšªææ€çŽ¢ãéèšã®æžããããããä»ã·ã¹ãã ã®ããŒã¿ãšã®çªãåãããã¹ããŒãèšèšã§åžåã§ããŸããäžæ¹ãæè»æ§ãšåŒãæãã«å€æãã€ãã©ã€ã³ãããŒã¿ããŒã¹ãèšèšã»éçšããã³ã¹ãããããããããŠãŒã¹ã±ãŒã¹ã«å¿ããŠãäžæã䜿ãåããã®ãè¯ãã§ãããã