site address:
dev.to/continuous-drivenarchitecture/archi-semantic-core-using-archi-models-from-typescript-171n redirected to: dev.to/continuous-drivenarchitecture/archi-semantic-core-using-archi-models-from-typescript-171n
site title:
Hot
|
|
|
Our opinion (on Wednesday 16 September 2026 18:10:27 UTC):
- no comments
|
|
|
|
After content analysis of this website we propose the following hashtags:
|
Hashtags existing on this website:
|
|
|
|
Meta tags:
description= How to read a .archimate file and work with its elements, relationships, and views from your... Tagged with code, software, typescript.;
keywords= code, software, typescript, software, coding, development, engineering, inclusive, community;
Headings (most frequently used words):
archi, archimate, with, and, from, dev, community, file, working, elements, relationships, views, the, model, its, semantic, core, using, models, typescript, installation, reading, visual, representation, validating, some, specific, details, complete, example, one, important, distinction, is, not, open, exchange, top, comments, how, to, read, work, your, own, application, trending, on, hot,
Text of the page (most frequently used words):
the (52), model (50), archi (43), fullscreen (40), mode (40), and (30), log (24), console (22), can (21), exit (20), enter (20), semantic (19), core (18), from (18), for (17), you (17), const (17), elements (16), #element (15), relationships (15), with (14), dev (13), views (13), xml (13), archimate (12), its (11), parsearchimodel (10), typescript (9), this (9), file (9), relationship (9), native (8), information (8), type (8), use (7), are (7), cda (7), length (7), import (7), example (7), application (7), share (6), community (6), that (6), open (6), your (6), format (6), there (6), extractarchimodelxml (6), also (6), applicationcomponent (6), same (5), may (5), not (5), validation (5), validatearchimodel (5), name (5), node (5), library (5), such (5), through (5), create (4), software (4), other (4), read (4), will (4), exchange (4), own (4), representation (4), models (4), important (4), structural (4), bytes (4), readfilesync (4), visual (4), diagram (4), objects (4), result (4), available (4), them (4), working (4), using (4), built (3), code (3), about (3), they (3), all (3), continuous (3), architecture (3), abuse (3), comments (3), but (3), contains (3), complete (3), npm (3), one (3), different (3), distinction (3), errors (3), valid (3), need (3), label (3), these (3), specific (3), properties (3), applications (3), view (3), both (3), contain (3), sourceid (3), work (3), directly (3), how (3), account (2), where (2), their (2), source (2), conduct (2), database (2), discuss (2), career (2), make (2), programming (2), driven (2), hide (2), well (2), comment (2), post (2), via (2), report (2), top (2), details (2), install (2), written (2), understanding (2), therefore (2), separate (2), responsibilities (2), tools (2), problems (2), build (2), modeling (2), rules (2), without (2), inspect (2), integrity (2), mymodel (2), small (2), useful (2), display (2), resolvelabelexpression (2), expressions (2), object (2), styling (2), nested (2), once (2), some (2), archimodel (2), does (2), whether (2), itself (2), particular (2), here (2), identifiers (2), references (2), parsed (2), each (2), expose (2), geometry (2), position (2), dimensions (2), connections (2), preserves (2), interprets (2), access (2), filter (2), targetid (2), concepts (2), query (2), language (2), typed (2), structures (2), process (2), instead (2), used (2), customer (2), files (2), copy (2), link (2), search (2), place, coders, stay, date, grow, careers, made, love, 2016, 2026, ruby, rails, powers, inclusive, communities, forem, terms, privacy, policy, mlh, shop, free, postgres, contact, showcase, organization, accounts, advertise, help, education, tracks, videos, challenges, home, space, keep, development, manage, anything, cool, lately, 500, replace, developers, posts, mistakes, webdev, evidence, graph, every, skill, instruction, 100, enforced, opensource, trending, hot, follow, further, actions, consider, blocking, person, reporting, confirm, child, sure, want, become, hidden, still, visible, permalink, dismiss, preview, submit, templates, let, quickly, answer, faqs, store, snippets, template, trusted, user, personal, subscribe, readme, api, reference, features, currently, supported, github, com, drivenarchitecture, repository, distributed, under, mit, license, focuses, first, converting, designed, interoperability, between, uses, persist, solve, should, confused, defined, group, works, specifically, reports, converters, visualizers, implementing, semantics, again, few, lines, interpret, contents, validate, nvalidation, structure, unnamed, putting, pieces, together, inspector, particularly, consumers, reproduce, would, resolve, dynamically, generate, displayed, property, owner, expression, attributes, specializations, profiles, connection, bendpoints, junctions, understands, value, becomes, clearer, move, beyond, basic, those, kinds, validates, determine, good, decision, complies, governance, rule, detect, duplicate, unresolved, inconsistencies, provides, validating, decide, which, matters, consumer, job, consistently, converter, renderer, analysis, tool, only, care, makes, very, preserve, referenced, diagramobjectids, layers, occurrence, has, context, refer, underlying, define, several, thing, represents, appears, exposes, values, easier, another, consume, unspecified, readwrite, write, accessrelationship, types, outgoing, find, originating, queries, servingrelationship, connects, way, special, involved, receive, ordinary, javascript, operations, means, repeatedly, interpreting, namespace, xsitype, original, cleaner, payment, businessprocess, iterate, over, normal, retrieves, while, stored, inside, deliberately, keeps, program, already, created, begin, inspecting, support, forms, detail, plain, zip, based, variant, when, embedded, images, disk, reading, manually, navigating, nodes, namespaces, start, text, main, operation, package, installation, article, see, gives, requiring, understand, internally, although, normally, interact, editor, folders, data, stores, posted, aug, miguel, céspedes, mastodon, facebook, linkedin, copied, clipboard, more, pick, gem, boost, save, jump, fire, raised, hands, exploding, head, unicorn, like, add, reaction, close, powered, algolia, navigation, menu, skip, content,
Text of the page (random words):
archi semantic core using archi models from typescript dev community skip to content navigation menu search powered by algolia search log in create account dev community close add reaction like unicorn exploding head raised hands fire jump to comments save boost pick as gem more copy link copy link copied to clipboard share to x share to linkedin share to facebook share to mastodon share post via report abuse miguel céspedes for continuous driven architecture posted on aug 15 archi semantic core using archi models from typescript code software typescript how to read a archimate file and work with its elements relationships and views from your own application archi stores its models in archimate files although we normally interact with them through the editor these files contain the complete model elements relationships folders views diagram objects connections properties geometry and other data used by archi archi semantic core gives you access to that information from typescript without requiring you to understand how archi structures its native xml internally in this article we will see how to use it installation the package is available on npm npm install cda archi semantic core enter fullscreen mode exit fullscreen mode the main operation is parsearchimodel import parsearchimodel from cda archi semantic core const model parsearchimodel xml enter fullscreen mode exit fullscreen mode here xml contains the xml text of a native archi model the result is a typed archimodel from there you can start working directly with the model console log model elements console log model relationships console log model views enter fullscreen mode exit fullscreen mode instead of manually navigating xml nodes and namespaces your application can work with concepts from the archi model reading a archimate file if you are working with node js you can read the model directly from disk there is one important detail a archimate file can be plain xml but archi can also use a zip based variant when the model contains embedded images to support both forms use extractarchimodelxml import readfilesync from node fs import extractarchimodelxml parsearchimodel from cda archi semantic core const bytes readfilesync mymodel archimate const xml extractarchimodelxml bytes const model parsearchimodel xml console log elements model elements length console log relationships model relationships length console log views model views length enter fullscreen mode exit fullscreen mode with this small program you can already open a model created in archi and begin inspecting it the library deliberately keeps these responsibilities separate extractarchimodelxml retrieves the xml from the file while parsearchimodel interprets the model stored inside it working with elements elements are available through model elements enter fullscreen mode exit fullscreen mode you can iterate over them using normal typescript for const element of model elements console log element name element type enter fullscreen mode exit fullscreen mode for example customer application applicationcomponent customer database node process payment businessprocess enter fullscreen mode exit fullscreen mode the library preserves both the original type written by archi and a cleaner semantic representation for example console log element xsitype archimate applicationcomponent console log element type applicationcomponent enter fullscreen mode exit fullscreen mode this means your application can work directly with applicationcomponent instead of repeatedly interpreting the namespace used in the xml you can also use ordinary javascript operations to query the model const applications model elements filter element element type applicationcomponent console log applications enter fullscreen mode exit fullscreen mode there is no special query language involved you receive typed typescript structures and can process them using the language itself working with relationships relationships are available through model relationships enter fullscreen mode exit fullscreen mode you can inspect them in the same way for const relationship of model relationships console log relationship type relationship sourceid relationship targetid enter fullscreen mode exit fullscreen mode archi connects model concepts through identifiers a relationship may therefore contain information such as type servingrelationship sourceid id application a targetid id application b enter fullscreen mode exit fullscreen mode from there you can build your own queries for example to find all relationships originating from a particular element const outgoing model relationships filter relationship relationship sourceid element id enter fullscreen mode exit fullscreen mode some relationship types also contain archi specific information an accessrelationship for example can expose its access type as read write readwrite unspecified the library interprets archi s native representation and exposes values that are easier for another application to consume views the model and its visual representation this is where an important distinction appears an element in the model is not the same thing as the object that represents it in a diagram you can define an applicationcomponent once and display it in several different views each occurrence has its own position dimensions and visual context but they all refer to the same underlying model element archi semantic core preserves both layers views are available through model views enter fullscreen mode exit fullscreen mode for example for const view of model views console log view name console log view diagramobjectids enter fullscreen mode exit fullscreen mode diagram objects preserve information such as their referenced archi element position dimensions nested objects connections and visual styling this makes the same parsed model useful for very different applications an analysis tool may only care about elements and relationships a renderer may also need geometry a converter may need properties and references the semantic core does not decide which information matters to each consumer its job is to expose archi s model consistently validating the model the library also provides structural validation import parsearchimodel validatearchimodel from cda archi semantic core const model parsearchimodel xml const result validatearchimodel model console log result valid console log result errors enter fullscreen mode exit fullscreen mode validation can detect structural problems such as duplicate identifiers unresolved references and other inconsistencies in the parsed model there is an important distinction here validatearchimodel validates the structural integrity of the archi model it does not determine whether the architecture itself is good or whether a modeling decision complies with a particular governance rule those kinds of rules can be built on top of the archimodel some archi specific details the value of a semantic core becomes clearer once you move beyond basic elements and relationships archi semantic core also understands native archi information such as and and or junctions connection bendpoints nested diagram objects visual styling properties specializations and profiles relationship specific attributes label expressions for example archi can use an expression such as name property owner enter fullscreen mode exit fullscreen mode to dynamically generate the label displayed on an object the library can resolve these expressions as well import resolvelabelexpression from cda archi semantic core const label resolvelabelexpression model node enter fullscreen mode exit fullscreen mode this is particularly useful for consumers that need to reproduce information as archi would display it a complete example putting the pieces together we can create a small archi model inspector import readfilesync from node fs import extractarchimodelxml parsearchimodel validatearchimodel from cda archi semantic core const bytes readfilesync mymodel archimate const xml extractarchimodelxml bytes const model parsearchimodel xml console log model model name unnamed console log elements model elements length console log relationships model relationships length console log views model views length console log n elements for const element of model elements console log element name element type const validation validatearchimodel model console log validation valid n model structure is valid nvalidation errors validation errors length enter fullscreen mode exit fullscreen mode in a few lines of typescript we can open a archimate file interpret its model inspect its contents and validate its structural integrity from there we can build reports converters visualizers modeling rules or other tools without implementing archi s native file semantics again one important distinction archimate is not open exchange archi semantic core works specifically with archi s native file format this should not be confused with the archimate model exchange file format defined by the open group they solve different problems archimate is the format archi uses to persist its own representation of models and views the model exchange file format is designed for interoperability between archimate tools understanding archi s native format and converting that information to an exchange format are therefore separate responsibilities archi semantic core focuses on the first one understanding archi archi semantic core is open source written in typescript and distributed under the mit license npm install cda archi semantic core enter fullscreen mode exit fullscreen mode repository github com continuous drivenarchitecture archi semantic core the readme contains the complete api reference and details about the native archi features currently supported top comments 0 subscribe personal trusted user create template templates let you quickly answer faqs or store snippets for re use submit preview dismiss code of conduct report abuse are you sure you want to hide this comment it will become hidden in your post but will still be visible via the comment s permalink hide child comments as well confirm for further actions you may consider blocking this person and or reporting abuse continuous driven architecture follow trending on dev community hot ts evidence graph make every skill instruction 100 enforced ai programming opensource typescript i read 500 ai will replace developers posts they all make the same 3 mistakes ai webdev programming career built anything cool with ai lately ai discuss community dev community a space to discuss and keep up software development and manage your software career home dev challenges dev videos dev education tracks dev help advertise on dev organization accounts dev showcase about contact free postgres database dev shop mlh code of conduct privacy policy terms of use built on forem the open source software that powers dev and other inclusive communities made with love and ruby on rails dev community 2016 2026 we re a place where coders share stay up to date and grow their careers log in create account
|
|
| Thumbnail images (randomly selected): * Images may be subject to copyright. | |  |
Jeongho Nam profile image
|
Verified site has: 30 subpage(s). Do you want to verify them? Verify pages:
|
The site also has references to the 1 subdomain(s)
|
The site also has 7 references to external domain(s).
|
The site also has 1 references to other resources (not html/xhtml )
|
Pages verified in the last hours (randomly selected):
|
|
Top 50 hastags from of all verified websites.
| |
|
|
|
|
|
|
Load Info| page size | 24775 | | load time (s) | 0.419472 | | redirect count | 1 | | speed download | 59128 | | server IP | 151.101.194.217 |
|
|
|
|
|
|
|
|
* Image may be subject to copyright.
|
|