arrow
返回

Components.js: Semantic dependency injection

delete2022-11-30
delete1
delete
OA
AI
R
Ruben Taelman *
J
Joachim Van Herwegen
M
Miel Vander Sande
R
Ruben Verborgh
DOI:10.3233/SW-222945delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
A common practice within object-oriented software is using composition to realize complex object behavior in a reusable way. Such compositions can be managed by Dependency Injection (DI), a popular technique in which components only depend on minimal interfaces and have their concrete dependencies passed into them. Instead of requiring program code, this separation enables describing the desired instantiations in declarative configuration files, such that objects can be wired together automatically at runtime. Configurations for existing DI frameworks typically only have local semantics, which limits their usage in other contexts. Yet some cases require configurations outside of their local scope, such as for the reproducibility of experiments, static program analysis, and semantic workflows. As such, there is a need for globally interoperable, addressable, and discoverable configurations, which can be achieved by leveraging Linked Data. We created Components.js as an opensource semantic DI framework for TypeScript and JavaScript applications, providing global semantics via Linked Data-based configuration files. In this article, we report on the Components.js framework by explaining its architecture and configuration, and discuss its impact by mentioning where and how applications use it. We show that Components.js is a stable framework that has seen significant uptake during the last couple of years. We recommend it for software projects that require high flexibility, configuration without code changes, sharing configurations with others, or applying these configurations in other contexts such as experimentation or static program analysis. We anticipate that Components.js will continue driving concrete research and development projects that require high degrees of customization to facilitate experimentation and testing, including the Comunica query engine and the Community Solid Server for decentralized data publication.
Keyword:
Dependency injection
inversion of control
RDF
linked data

期刊

Semantic Web 封面图
Semantic Web
IF:
2.9
论文数:
609
被引数:
1.6K

机构

G
Ghent University
学者数:
5.2W
论文数: 4.5W
被引数: 5.5W
I
interuniversity microelectronics centre
学者数:
6.3K
论文数: 4.0K
被引数: 0
引用论文

引用论文

Gate Control Theory of Pain痛觉的闸门控制理论
err2020-10-20
err0
PREAI
errTavis S. Campbell; Jillian A. Johnson; Kristin A. Zernicke
err分享
err收藏
A facile asymmetric synthesis of (+)-eldanolide
err2007-03-01
err0
PREAI
errLinglong Kong; Zeyang Zhuang; Qingshou Chen; Haibing Deng; Zhiyong Tang; Xueshun Jia; Yulin Li; Hongbin Zhai
err分享
err收藏
Hydrophobic Salt-modified Nafion for Enzyme Immobilization and Stabilization
err2012-07-11
err0
errOAAI
errShannon Meredith; Shuai Xu; Matthew T. Meredith; Shelley D. Minteer
err分享
err收藏
Transverse isotropic elastic moduli and in-plane thermal diffusivity in silicon-supported thin films of a photosensitive polyimide measured using impulsive stimulated thermal scattering
err1995-01-01
err0
PREAI
errJennifer K. Cocson; Christine S. Hau; Peijou M. Lee; Clara C. Poon; Annita H. Zhong; John A. Rogers; Keith A. Nelson
err分享
err收藏
err分享
err收藏
err分享
err收藏
学者 查看更多内容