Brick

Uniform metadata schema for buildings

https://github.com/BrickSchema/Brick

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    4 of 28 committers (14.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.0%) to scientific vocabulary

Keywords from Contributors

serializer rdf pypi interactive projection shellcodes archival network-simulation charts owl
Last synced: 6 months ago · JSON representation

Repository

Uniform metadata schema for buildings

Basic Info
  • Host: GitHub
  • Owner: BrickSchema
  • License: bsd-3-clause
  • Language: Python
  • Default Branch: master
  • Homepage: http://brickschema.org/
  • Size: 56.9 MB
Statistics
  • Stars: 331
  • Watchers: 27
  • Forks: 86
  • Open Issues: 108
  • Releases: 108
Created over 9 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Support

README.md

Brick

Build Status Python 3.6

Brick is an open-source, BSD-licensed development effort to create a uniform schema for representing metadata in buildings. Brick has three components:

  • An RDF class hierarchy describing the various building subsystems and the entities and equipment therein
  • A minimal, principled set of relationships for connecting these entities together into a directed graph representing a building
  • A method of encapsulation for composing complex components from a set of lower-level ones

The official Brick website, http://brickschema.org/, contains documentation and other information about the Brick schema.

This repository tracks the main schema development of Brick.

Discussion

Discussion takes place primarily on the Brick User Forum: https://groups.google.com/forum/#!forum/brickschema

Questions and Issues

If you have an issue with Brick's coverage, utility or usability, or any other Brick-related question:

  1. First check the Brick user forum and the Brick issue tracker to check if anyone has asked your question already.
  2. If you find a previously submitted issue that closely mirrors your own, feel free to jump in on the conversation. Otherwise, please file a new issue or submit a new thread on the forum.

Examples

The examples/ directory contains executable code samples with extensive documentation that introduce Brick concepts and idioms.

  • example1: getting familiar with RDFlib, namespaces, Brick models and when and when not to import the Brick ontology definition
  • simple_apartment: uses Python to programmatically build a Brick model of a small apartment
  • g36: contains Brick implementations of several figures from ASHRAE Guideline 36

Versioning

Brick uses a semantic versioning scheme for its version numbers: major.minor.patch. The releases page contains links to each published Brick release for easy download.

We target a minor version release (e.g. 1.1, 1.2, 1.3) roughly every 6 months. Minor releases will contain largely backwards-compatible extensions and new features to the ontology. Due to the significance of these changes, minor releases will be developed in their own branch; PRs for those releases will be merged into the minor version branch, and then ultimately merged into the main branch when the minor release is published.

Patch releases (e.g. 1.2.1, 1.2.2) contain smaller, incremental, backwards-compatible changes to the ontology. Commits and PRs for the next patch release will be merged directly into master. Every evening, a nightly build is produced containing the latest commits. There may be bugs or errors in the nightly release, however these bugs will be removed by the time a patch release is published.

How To Contribute

See CONTRIBUTING.md

Tests

Tests go in the tests/ directory and should be implemented using pytest. tests/test_inference.py is a good example.

Run tests by executing pytest or make test in the top-level directory of this repository. * Before running pytest the Brick.ttl file needs to be created using either make or python generate_brick.py.

Python Framework

Rather than getting lost in the Sisyphean bikeshedding of how to format everything as YAML, we're just using Python dictionaries so we don't have to worry about any (well, not that much) parsing logic.

For now, the code is the documentation. Look at bricksrc/equipment.py, bricksrc/point.py, etc. for examples and how to add to each of the class hierarchies.

Other Tools

Version Comparison

We can track the different classes between versions. The below scripts produces comparison files. - python tools/compare_versions/compare_versions.py --oldbrick 1.0.3 https://brickschema.org/schema/1.0.3/Brick.ttl --newbrick 1.1.0 ./Brick.ttl

It will produce three files inside history/{old_version}-{new_version}. - added_classes.txt: A list of new classes introduced in the current version compared to the previous version. - removed_classes.txt: A list of old classes removed in the current version compared to the previous version. - possible_mapping.json: A map of candidate classes that can replace removed classes. Keys are removed classes and the values are candidate correspondants in the new vesion.


The Brick Development Team was initiated to produce a unified metadata schema for resources in buildings in early 2016. The team consists of members from IBM; Carnegie Mellon University; University of California, Berkeley; University of California, Los Angeles; University of California, San Diego; University of Virginia and University of Southern Denmark.

Owner

  • Name: Brick Schema
  • Login: BrickSchema
  • Kind: organization

Open-source ontology for building assets, subsystems and data

GitHub Events

Total
  • Create event: 15
  • Issues event: 23
  • Release event: 251
  • Watch event: 35
  • Delete event: 12
  • Issue comment event: 69
  • Push event: 47
  • Pull request review comment event: 11
  • Pull request review event: 11
  • Pull request event: 43
  • Fork event: 8
Last Year
  • Create event: 15
  • Issues event: 23
  • Release event: 251
  • Watch event: 35
  • Delete event: 12
  • Issue comment event: 69
  • Push event: 47
  • Pull request review comment event: 11
  • Pull request review event: 11
  • Pull request event: 43
  • Fork event: 8

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 848
  • Total Committers: 28
  • Avg Commits per committer: 30.286
  • Development Distribution Score (DDS): 0.557
Past Year
  • Commits: 32
  • Committers: 4
  • Avg Commits per committer: 8.0
  • Development Distribution Score (DDS): 0.5
Top Committers
Name Email Commits
Gabe Fierro g****o@c****u 376
Jason Koh b****9@g****m 146
Xiaolin (Charlene) Zang c****g@c****u 86
Connor Cantrell 3****l 65
shreyasnagare s****e@g****m 45
KiithNabaal m****k@y****m 28
steveraysteveray s****e@s****m 19
ektrah e****h 13
metesaka m****8@g****m 11
Carlos Duarte c****e@b****u 10
Joern Ploennigs J****s@i****m 10
Jonas Bülow j****w@g****m 6
anil72007 n****l@g****m 6
Jonas Bülow j****w@s****m 5
Erik Paulson e****n@u****m 5
Georg Ferdinand Schneider 1****r 2
corymosiman12 c****2@g****m 2
wcrd 1****d 2
Karl Hammar k****r@m****m 2
dependabot[bot] 4****] 1
Mike Finch G****k 1
Joel Bender j****l@c****m 1
Jacob Hicks h****p 1
Filip Henrik Larsen 8****l 1
David Waterworth w****a@g****m 1
Daniel Hugo d****o@c****u 1
Ben Hussey b****n@b****t 1
Ambuj Shatdal 8****l 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 274
  • Total pull requests: 501
  • Average time to close issues: 4 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 83
  • Total pull request authors: 33
  • Average comments per issue: 3.42
  • Average comments per pull request: 2.41
  • Merged pull requests: 410
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 29
  • Pull requests: 63
  • Average time to close issues: 4 days
  • Average time to close pull requests: 5 days
  • Issue authors: 15
  • Pull request authors: 8
  • Average comments per issue: 0.76
  • Average comments per pull request: 1.19
  • Merged pull requests: 38
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • gtfierro (40)
  • jbkoh (37)
  • corymosiman12 (14)
  • epaulson (13)
  • connorjcantrell (12)
  • jbulow (11)
  • ektrah (11)
  • PeteHart (8)
  • JoelBender (5)
  • bbalaji-ucsd (5)
  • david-waterworth (4)
  • s0301132 (4)
  • sarahmacSE978 (4)
  • MatthewSteen (4)
  • sn3kyJ3di (3)
Pull Request Authors
  • gtfierro (262)
  • jbkoh (59)
  • connorjcantrell (44)
  • steveraysteveray (23)
  • ektrah (22)
  • carlosduarteroa (15)
  • shreyasnagare (15)
  • jbulow (9)
  • epaulson (7)
  • metesaka (6)
  • wcrd (5)
  • corymosiman12 (5)
  • hammar (3)
  • jli113 (2)
  • fennibay (2)
Top Labels
Issue Labels
Add/Amend Concepts (29) bug (15) Ontology/OWL/RDF (11) Alignment/Mapping (6) Beginner Friendly (5) Examples (1) Documentation (1) question (1)
Pull Request Labels
Add/Amend Concepts (6) bug (3) Ontology/OWL/RDF (3) dependencies (2)

Packages

  • Total packages: 2
  • Total downloads: unknown
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 28
proxy.golang.org: github.com/brickschema/brick
  • Versions: 14
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Average: 8.2%
Dependent repos count: 9.3%
Last synced: 6 months ago
proxy.golang.org: github.com/BrickSchema/Brick
  • Versions: 14
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Average: 8.2%
Dependent repos count: 9.3%
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • black ==22.1.0
  • brickschema >=0.6.1a6
  • docker >=4.3.0
  • flake8 ==3.9.2
  • owlrl >=6.0
  • pre-commit >=2.13.0
  • pyshacl >=0.19
  • pytest >=6.2
  • pytest-xdist *
  • rdflib >=6.1
  • semver >=2.10.1
  • tqdm >=4.46.1
.github/workflows/builds.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • actions/upload-artifact v3 composite
.github/workflows/nightly-builds.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
  • marvinpinto/action-automatic-releases latest composite