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.

  1. 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.

  2. 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.

  3. 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.

  4. 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å.

  5. 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.

  6. →

    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.

linjenindeude

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.

linjenindeude

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.

https://w3id.org/twbowl:importscore · construction · detailing · requirements · profile · decision · derivation · housefile · doctwb.ttl
  1. Kerne

    https://w3id.org/twb/core

    Skelettet: 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

    Hent twb-core.ttl
  2. Konstruktion

    https://w3id.org/twb/construction

    Hvad 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

    Hent twb-construction.ttl
  3. Detaljering

    https://w3id.org/twb/detailing

    Hvordan 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

    Hent twb-detailing.ttl
  4. Krav

    https://w3id.org/twb/requirements

    Hvad 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

    Hent twb-requirements.ttl
  5. Projektprofil

    https://w3id.org/twb/profile

    Projektets 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

    Hent twb-profile.ttl
  6. Beslutninger

    https://w3id.org/twb/decision

    Hvor 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

    Hent twb-decision.ttl
  7. Afledning

    https://w3id.org/twb/derivation

    Bygningen 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

    Hent twb-derivation.ttl
  8. Husfil

    https://w3id.org/twb/housefile

    Det 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

    Hent twb-housefile.ttl
  9. Dokumentation

    https://w3id.org/twb/doc

    Dokumentationen: 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

    Hent twb-doc.ttl

Ved siden af

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.

Skemaet tegnes i browseren. Ontologien kan hentes som Turtle herunder.

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).