-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Brickify help usage and operations #70
Comments
@shreyasnagare can you take a look at this? |
What’s happening?:
When you write an operation like: operations:
-
description: "Adding tag-texts"
data: |-
bldg:{object-name} <internal-association-predicate> bldg:{object-tag-text} .
brickify tries to create an URI from If you already know what unsafe characters the headers/values might have, you can use the The safer approach: Also, I see that the last few column headers have the value “null”. If you wish to access that detail from any of the rows, you might wanna rename the headers. I’m planning to add that option (auto url-encode) as part of the config sometime next week. Until then, you can try and see if urllib works for you. |
What's happening? : ... well I'm not sure myself to be honest. There are further Issues for me: How come the operations from your example link are built different than the the ones in the documentation? example
vs documentation
Which format works or is better? Are they inter-exchangeable? What does the "bldg:" and the "_0" do? I tried to manually change the table format so something like this:
Or should I keep more of the tree format? Ex. B1_AHU1_PU So if I would want to add the AHU from my files could I do it like this?:
Running this alone yields an error (even without the Erc part). "yaml.parser.ParserError: while parsing a block node I don't understand. Whats wrong in line 6? It's just "description: "adding building". It also provides a column... but the yml doesn't have columns? Now even if it would work, the relationships aren't mapped right?
I'm not sure how this would be used to link these parts together. Even harder there are many many more like a ventilators, preheaters, vales, all part of different subparts of the AHU with their own settings, sensors and commands. If my understanding is correct I think the relationships of the simplified exert should be : |
@Pythonwuerger, sorry about the delay. For the CSV file you uploaded, can you share some operations that you're trying to work with? From what I can see, the headers that you can work with here are: Feel free to respond with the triples that you're trying to get, for example:
where you assume I have tried to fix some of the problems you were facing in PR #75. |
Since there are the three datasheets I have are very different from each other, I tried to work with an example which lead me to the other issue #74. As of right now, issue #74 is my more specific problem while this issue is more about understanding. As I understand each of the datasheets I linked would need a custom operator. That's why I think it would be easier to bring them into a unified format and write an operator customized to the unified format. Please correct me if I'm mistaken. The most important headers are keyname/object-name. I believe both columns are the same. The descriptor column is very helpful for human readability. The ahu1 only.csv is only an excerpt of one dateset. There are many more AHUs and buildings. For example the first entry B1 would be a building. So this should be assigned the building Brick. For example it has shutoff dampers, the "DmpSfOa" in line 13 "B1'A'Ahu1'DmpSfOa", which itself has a command, command value with "Cmd" and "CmdVal". There are parts of the AHU that are currently of special interest. These would be: 26 : B1'A'Ahu1'Erc'Pu'KickFnct.OpSta 42 : B1'A'Ahu1'FanEx'Cmd 52 : B1'A'Ahu1'FanSu'Cmd 123 : B1'A'Ahu1'PreHcl'Pu'KickFnct.OpSta 183 : B1'A'Ahu1'TOa As you can see, the entries I'd like to have mapped are in a quite confusing format. In addition for a lot of those parts or commands I was unable to find a fitting Brick Class. This is also why I just used the more simple data of a heating group in the other issue. |
@Pythonwuerger As a starting point, you can try to do something like this: py-brickschema/brickschema/brickify/src/handlers/Handler/RACHandler/conversions/rac.yml Lines 227 to 258 in 42acd46
Adding the |
As it turned out, it is possible to operate an entire object-name (e.g. B1'A'Ahu1'FanSu'Mdlt) as an instance. With the help of conditions the keys can be assigned to specific bricks depending on how the object-name ends. For a lot of notations of my datasets it is first necessary to find out which Brick fits best, or even to define additional ones. |
Hello this is Philip H. from the Google Group
I looked through the Brickify documentation and I need to reach out for help.
The first thing I have trouble with are the handlers and operations.
I get that there are different handlers that can be used, but do I understand right that I have to crate the operator myself?
I understand the basic way the operator is built for the example, but I fail to decipher the deeper logic behind it to be able to apply it to a vastly different data set. Even worse, the logic my data set has is even harder for me to understand and it doesn't have useful column names like the example. Instead it looks like this:
ahu1 only.csv
This is the data, I can see the most logic in it.
It would be nice to use the other two as well, but they seem even harder to decode.
Example.xlsx
Example2.xlsx
Coding an operator seems to prove very difficult. Are there any prebuilt operators that could be used a base?
If I split the date by delimiters would it be easier to write an operator?
Is there is more info or a tutorial available. For example why is there the data operation twice in the template?
Also, what handler would be recommended for these formats?
I was told the structure of the first data set should be aligned with the haystack format, but I wan't able to confirm it as of yet. How do I convert it to a haystack turtle so that I can load with the haystack handler?
About the command:
brickify sheet.tsv --output bldg.ttl --input-type tsv --config template.yml
When running it with other data and template than the examples I get an error:
"'charmap' codec can't decode byte 0x81 in position 462" What does this error message mean?
EDIT:
The example sheet in the documentation seems to be already normalized data. It seems I need to go back one step.
Since the documentation mentions that it's a job for a technical support team, is it feasible as a one man job? What would you think how long it would take to normalize the data and write a full operator?
I noticed that the first data looks a bit similar to the test data Gabe used in his OpenRefine + BrickBuilder video. What is the best way to make this data compatible with Brickify?
I would be very thankful for any help.
The text was updated successfully, but these errors were encountered: