`dependsOn`-derived dependency graph doesn't include `isProfileOf` targets
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 75/100
Hướng nghiên cứu
Bắt đầu trong ogc/bblocks/models.py tại BuildingBlockRegister.init và theo dõi cách đồ thị dependency cùng siêu dữ liệu dependsOn của register.json được tạo từ bblock.json, các tham chiếu schema/OpenAPI và extensionPoints. Kiểm tra với một profile isProfileOf-only rằng đồ thị hướng tới viewer và siêu dữ liệu được xuất có bao gồm target của nó mà không cần một dependsOn trùng lặp.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
A Building Block that declares only isProfileOf (no dependsOn) renders with no visible
dependency graph in the viewer, even though it is related to another block. Blocks that are
pure profiles of a shared anchor - with no schema $ref to auto-detect, and no reason to
declare a literal dependsOn - currently have no way to show up in the graph without also
duplicating their isProfileOf target into dependsOn.
Root cause
In BuildingBlockRegister.__init__ (ogc/bblocks/models.py), the dependency graph and the
dependsOn metadata exposed in register.json are built only from:
- an explicit
dependsOninbblock.json, bblocks://references auto-detected in the block's schema/OpenAPI document, andextensionPoints.baseBuildingBlock/extensionPoints.extensions.
isProfileOf is never folded in. Since isProfileOf is documented as "profiling is akin to
inheritance", it seems reasonable that a profile should also count as depending on what it
profiles for graph-visibility purposes, the same way an extension point does.
Workaround used in the meantime
In our register, we added an explicit, redundant dependsOn (pointing at the same target as
isProfileOf) to every profile block, purely so the graph renders. This works, but requires
every register author to remember to duplicate the two fields in lockstep, and semantically
overloads dependsOn for something that isn't really a runtime dependency.
Suggested fix
When building the dependency graph / exported dependsOn metadata, also include each block's
isProfileOf target(s) - either by merging them into the same dependsOn list, or by exposing
them as their own edge set that consumers (like the viewer) can render alongside dependsOn.
This would let a profile block be graph-visible from isProfileOf alone, without authors having
to declare a duplicate dependsOn.
Reference: working example of the workaround in
ogcincubator/bblocks-prov-jsonld-alt#5, where five isProfileOf-only profile blocks needed a
duplicate dependsOn added purely to appear in the viewer's graph. A related viewer-side fix for
rendering these relationships as dependents is in ogcincubator/bblocks-viewer#14.
- Ngôn ngữ chính
- Python
- Star
- 1
- Fork
- 6
- Merge trung bình
- 23 giờ 43 phút
- Pull request đã merge (30 ngày)
- 7
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của opengeospatial/bblocks-postprocess
-
Improve build strategyĐang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
opengeospatial/bblocks-postprocess#102 · 12 bình luận ·
-
if no bblocks highlighted, assume all are.Có thể đã có người làm @avillar đã nhận 9 ngày trước. Đang mở
opengeospatial/bblocks-postprocess#96 · 3 bình luận · 1 người được giao ·
-
Annotate output is not reproducible: properties[] order varies between runs on identical sourcesCó thể đã có người làm @avillar đã nhận 21 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 56/100
opengeospatial/bblocks-postprocess#91 · 1 bình luận · 1 người được giao ·
-
JSON schema library version review.Có thể đã có người làm @avillar đã nhận 27 ngày trước. Đang mở
opengeospatial/bblocks-postprocess#89 · 3 bình luận · 1 người được giao ·
-
Test failures cannot distinguish advisory SHACL results (sh:Warning / sh:Info) from sh:ViolationĐang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
Tất cả issue của opengeospatial/bblocks-postprocess
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 4 ngày
-
Add alembic upgrade predeployĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
ClockGU/clockwork-backend#169 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
aws-samples/sample-per-model-bedrock#616 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
chnm/teachinghistory-hugo#47 ·
-
good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
pandas-dev/pandas-stubs#2047 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày