Datamodellen · TWB-ontologien
Et hus er flader,kanter og zoner.
Under værktøjet ligger en åben datamodel: TWB, en OWL-ontologi oven på Building Topology Ontology (BOT). Den beskriver huset, før det er detaljeret — tynde flader på konstruktionens referenceplaner — og hæfter byggeviden på der, hvor den hører til: en opskrift på fladen, en samling på kanten, et krav på den side, der vender mod rummet.
- 97
- klasser
- 115
- relationer
- 80
- egenskaber
- CC BY 4.0
- licens for ontologien
Hent hele ontologien twb.ttlSHACL-reglerne twb-shapes.ttlJSON-LD-konteksten 2.jsonld
01 · Begreberne
Viden der, hvor den hører til
En væg i TWB er ikke et objekt med en tykkelse. Den er en flade uden tykkelse, og alt det, man ved om væggen, sidder på fladen, dens sider, dens kanter eller dens åbninger. Fem steder bærer modellen.
- 01
Fladen bærer en opskrift
En plan polygon på væggens, gulvets eller tagets referenceplan — i et træskelet stolpernes centerlinje. Opskriften (twb:Recipe) er lagene i rækkefølge, et af dem kernen. Fladen er et bot:Element i sin tynde form; de afledte reglar er dens underelementer.
- 02
Siden bærer kravene
Hver flade har to sider (twb:SurfaceSide), og hver side vender mod zoner. Hvor en zone møder en side, er der en zonegrænse — og det er dér, kravene lander: vådrumssikring mod badet, maling mod soveværelset. Kun den del af væggen, badet vender mod.
- 03
Kanten bærer samlingen
Hvor to flader mødes, er der en kant (et bot:Interface) med en type: hjørne, tagfod, gavl, T-samling. Samlingen (twb:JointDetail) siger, hvordan hvert lag i hver flade ender. Den mest specifikke vinder: kantens egen, så skabelonen, så projektets standard, ellers geringen.
- 04
Åbningen bærer sin inddækning
Vinduer og døre er åbninger, som fladen hoster (bot:hostsElement). Hver har fire kantstykker med deres kuldebro (ψ) og en åbningsdetalje: sålbænk, indfatning, over- og underliggere. En dør mellem to rum giver en passage — en vej, man kan gå.
- 05
Blueprintet bærer standarderne og reglerne
Projektets standarder pr. kanttype, skabeloner, det arkitektoniske udtryk, bygningens anvendelse og dens regler. Reglerne er data (twb:AdjacencyRule): "mod et vådrum kræves vådrumssikring", "en ydervæg i en helårsbolig højst 0,30 W/m²K". Og beslutningerne bag værdierne, med deres kilde.
- →
Resten er afledt
Alt på elementniveau — reglar, plader, brædder, bearbejdninger — er afledt af blueprintet ved en deterministisk kompilering (twb:Derivation, en prov:Activity, der følger blueprintet som sin plan). Det er det, der gør blueprintet til en skabelon for bygningen frem for en model af den.
02 · Væglinjen
Hvor den tynde væg ligger
En flade uden tykkelse skal ligge et bestemt sted i væggen, ellers ved ingen, hvor lagene skal hen. TWB lægger den altid midt i det, der bærer: den del af væggen, taget og etagerne hviler på. Det er dér, huset sættes ud på sit modul — og opbygningen lægges ud til begge sider derfra.
Træhuse: midt i stolperne
Linjen går midt gennem stolperne, råhusets bærende skelet, før isolering, beklædning og plader. Huset sættes ud på pladens modul, 1200 og 600, målt fra linje til linje — så en 7200 bred plan er 7200 mellem stolpernes midter. Udvendigt over beklædningen er huset større, og rummet indenfor mindre; det regner programmet selv ud af opbygningen.
Murede huse: midt i bagmuren
I en hulmur bærer bagmuren taget og remmen; formuren er en skal udenpå. Linjen går derfor midt i bagmuren, og det er den, der sættes ud i murmål: hele halve sten, 120, fra linje til linje. Hulmuren gøres så bred, at formuren også går op — så længden over formuren bliver n × 120 − 12, hele sten med normale fuger. Med 100 mm bagmur og 108 mm tegl bliver hulmuren 196 mm, og linjen ligger 354 mm inde fra facaden.
Én regel for begge: linjen er konstruktionens, modulet gælder linjen, og alt andet er afstande fra den, som opbygningen giver. Hulmurens bredde er en standard, programmet regner ud; vælger man en anden, gemmes den i husfilen og vinder.
03 · Modulerne
Én ontologi, taget i dele
TWB er bygget som SEAS-ontologierne (Smart Energy Aware Systems): ét navnerum, twb:, delt af alle moduler; hvert modul er en ontologi for sig, der kun importerer de moduler, den bygger på; og hvert begreb siger, hvilket modul der definerer det (rdfs:isDefinedBy). https://w3id.org/twb importerer dem alle. Vil man kun have huset som flader, kanter og zoner, importerer man kernen alene.
twb.ttlKerne
https://w3id.org/twb/coreSkelettet: blueprintet, etager, zoner (rum, omgivelser, lofter, passager gennem døre) og inventar, de tynde flader med deres sider og zonegrænser, åbningerne de hoster, kanterne og knuderne hvor de mødes, linjeelementer og fundamenter. Intet om, hvad noget er bygget af.
importerer intet andet modul
42 klasser · 32 relationer · 26 egenskaber
Henttwb-core.ttlKonstruktion
https://w3id.org/twb/constructionHvad en flade er bygget af: opskrifter og deres lag, materialer, mønstre af reglar, beklædning, fald, murværk og bindere, belægninger på zonegrænser, U- og ψ-værdier.
importerer Kerne
12 klasser · 14 relationer · 12 egenskaber
Henttwb-construction.ttlDetaljering
https://w3id.org/twb/detailingHvordan opskrifterne mødes: samlinger på kanter med lagenes afslutninger og lister, skabeloner og projektstandarder, åbningsdetaljer, brædder over en samling, listers møde i knuder og skeletreglerne med deres BTLx-bearbejdninger.
importerer Konstruktion
22 klasser · 35 relationer · 5 egenskaber
Henttwb-detailing.ttlKrav
https://w3id.org/twb/requirementsHvad konstruktionen skal kunne, hvor en zone møder en flade: evner, nabo-regler som data, de krav de udleder, og U-værdi-grænser.
importerer Konstruktion
3 klasser · 11 relationer · 5 egenskaber
Henttwb-requirements.ttlProjektprofil
https://w3id.org/twb/profileProjektets valg: det arkitektoniske udtryk og de lister det afleder, bygningens anvendelse, der vælger reglerne, konstruktionssystemet og de statiske parametre.
importerer Krav, Detaljering
3 klasser · 6 relationer · 11 egenskaber
Henttwb-profile.ttlBeslutninger
https://w3id.org/twb/decisionHvor værdierne kom fra: beslutninger i tre niveauer (profil, standard, undtagelse), deres værdi og kilde — en tegning eller en antagelse.
importerer Kerne
2 klasser · 3 relationer · 4 egenskaber
Henttwb-decision.ttlAfledning
https://w3id.org/twb/derivationBygningen på elementniveau, afledt af blueprintet: afledningen, reglarne med deres rolle, tværsnit og bearbejdninger, pladerne og hvad der styrede hver.
importerer Detaljering
4 klasser · 4 relationer · 4 egenskaber
Henttwb-derivation.ttlHusfil
https://w3id.org/twb/housefileDet husfilen (twb/1) skal bruge ud over resten: geometri som tegnet, i millimeter som JSON, og henvisninger ved navn.
importerer Detaljering
3 relationer · 8 egenskaber
Henttwb-housefile.ttlDokumentation
https://w3id.org/twb/docDokumentationen: snittene brugeren har placeret eller fravalgt, og tegningssættet afledt af blueprintet — ark, tegninger og målestok.
importerer Kerne
9 klasser · 7 relationer · 5 egenskaber
Henttwb-doc.ttl
Ved siden af
- https://w3id.org/twb/shapes
SHACL-reglerne: hvad et velformet blueprint er, og om konstruktionen opfylder kravene.
Henttwb-shapes.ttl - https://w3id.org/twb/align
Koblinger til BPO, DiCon, SML, BEO, ifcOWL og OPM — holdt udenfor, så TWB aldrig tvinger dem med.
Henttwb-align.ttl - https://w3id.org/twb/catalogue/arch
archs kataloger som SKOS: rumtyper, reglar-roller, bearbejdninger, materialer, anvendelser.
Henttwb-catalogue.ttl
Sådan bruger du et modul
@prefix twb: <https://w3id.org/twb#> .
<https://example.org/my-ontology>
a owl:Ontology ;
owl:imports <https://w3id.org/twb/construction> .Adresserne svarer en RDF-klient med Turtle og en browser med denne side. Begreberne har samme IRI, hvilket modul man end importerer.
04 · Skemaet
Hele ontologien, til at trække i
Klasserne og relationerne i alle TWB’s moduler, tegnet i VOWL-notationen fra WebVOWL. Træk i en klasse, zoom og panorer, klik for at se, hvad den er, hvad den hænger sammen med, og hvor mange af den casehuset har.
05 · Modellering
Dele af et hus, som filen og som graf
Eksemplerne er skåret ud af casehuset fra artiklen og vist i <arch-paper-model>, den del af værktøjet vi gør åben (Apache-2.0). Klik på en flade: til højre står det, filen siger om den, læst som JSON-LD til RDF i din browser.
06 · Regeltjek
Regler, du kan læse og køre
Reglerne er data og SPARQL, ikke kode. Her kører de på casehuset med Oxigraph i din browser: først udleder reglerne kravene fra hvad hver flade adskiller, så tjekker SHACL-reglerne, om konstruktionen opfylder dem. Skift noget, og alt køres igen.
07 · Åbent
Det åbne og det lukkede
Reglen er enkel: åbent er det, der definerer et blueprint og lader alle tegne, læse og udveksle det. Lukket er det, der gør et blueprint til en bygning.
Åbent
- TWB-ontologien, SHACL-reglerne, SPARQL-reglerne og casehuset — CC BY 4.0
- Husfilen twb/1 i JSON-LD: kontekst, skema, parser — Apache-2.0
- Tegnemotoren @surfacekit: flader, modulnet, push/pull, 3D — Apache-2.0
- <arch-paper-model>, viewer’en i eksemplerne ovenfor — Apache-2.0
Værktøjet
- Opskrifterne, skeletreglerne og EC5-dimensioneringen
- Klimaskærmen: placering af lag, samlinger og inddækninger
- Materialeliste, skæreplaner, pladeudlægning og IFC
Modelvalg, der er værd at diskutere
Hvorfor er en flade et bot:Element og ikke et bot:Interface?
Den tynde flade er bygningsdelen, før den er detaljeret: den hoster sine åbninger og har sine reglar som underelementer. Grænsefladerne er der, hvor den møder zoner, andre flader, sine åbninger og punkter. Sådan forbliver BOT’s skel mellem elementer og grænseflader meningsfuldt.
Hvorfor har en flade sider som egne noder?
Uden twb:SurfaceSide kan man hverken sige, hvilken side opskriften starter fra, eller "fliser mod badet, maling mod soveværelset". IFC’s DirectionSense og gbXML’s ordnede rum løser hver en del af det.
Hvorfor lander krav på zonegrænser og ikke på flader?
En skillevæg med et bad på den ene side skal kun vådrumssikres på den side, og kun der hvor badet er. Derfor lægger reparationen en belægning på zonegrænsen i stedet for at skifte væggens opskrift.
Hvorfor SPARQL og ikke kode?
En regel er en twb:AdjacencyRule — data — og én generisk forespørgsel anvender dem alle. Bygningens anvendelse vælger, hvilke regler der gælder. SPARQL CONSTRUCT kører alle steder: i Python i artiklen, i Rust, og her i din browser.
Ontologien er en arbejdsversion til diskussion og følger artiklen Thin-walled blueprints (indsendt til Automation in Construction).