datagov-cz / sgov-assembly-line Goto Github PK
View Code? Open in Web Editor NEWIssue tracker k výrobní lince sémantických konceptuálních modelů.
License: MIT License
Issue tracker k výrobní lince sémantických konceptuálních modelů.
License: MIT License
Nevím, jestli se jedná o chybu, nebo novou featuru. Pokud je v IPR TermItu definice pojmu vyznačená výskytem v textu dokumentu, v detailu pojmu, o jehož definici se jedná, je u zdroje definice tlačítko, které přesune uživatele k výskytu definice v textu dokumentu. V TermItu výrobní linky tato funkcionalita chybí.
Pokud je to možné, pokuste se informaci o chybě rozepsat dle následující struktury, pomůžete nám ji rychleji identifikovat a opravit.
Popište:
Při práci v TermItu v pracovním prostoru Budovy jsem se pokusil otevřít detail pojmu Budova a Katastrální území. V obou případech jsem dostal blank screen a v pravém horním rohu chybovou hlášku
cz.cvut.kbss.ontodriver.sesame.exceptions.SesameDriverException: org.eclipse.rdf4j.repository.RepositoryException: <!doctype html><html lang="en"><head><title>HTTP Status 400 – Bad Request</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1><hr class="line" /><p><b>Type</b> Exception Report</p><p><b>Message</b> Request header is too large</p><p><b>Description</b> The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).</p><p><b>Exception</b></p><pre>java.lang.IllegalArgumentException: Request header is too large org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:777) org.apache.coyote.http11.Http11InputBuffer.parseHeader(Http11InputBuffer.java:938) org.apache.coyote.http11.Http11InputBuffer.parseHeaders(Http11InputBuffer.java:593) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:284) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:887) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1684) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.base/java.lang.Thread.run(Thread.java:834) </pre><p><b>Note</b> The full stack trace of the root cause is available in the server logs.</p><hr class="line" /><h3>Apache Tomcat/9.0.43</h3></body></html>
Při nahrání slovníku, který byl vytvořen v OntoGrapheru jsou všechny pojmy označené jako rozpracované. Na jednu stranu tomu trochu trozumím, na druhou stranu TermIt neví, jak pojmy vznikly a OntoGrapher je potvrzovat neumí.
Ikona prvku se zvětší tak, aby obsáhl celý pojem v jednom řádku ... s ohledem na to, že se často musí držet dlouhé pojmy dané legislativou je to trochu nepraktické. Pokud by se text zalamoval a případný delší název byl zkrácen a zobrazoval se v plném znění jen např. při najetí kurzoru, tak by to bylo asi přehlednější.
Mé pojmy jej potřebují. Za A jsou přes něj porpojeny a za B od jeho pojmů dědí že jsou ufo:Object.
Při pokusu o tvorbu slovíku s IRI, které již existuje vyhodí pracovní prostor hlášku - "slovník se nepodařilo vytvořit". Neřekne ale proč.
Buď by měla hláška říkat, proč nelze slovník vytvořit, nebo ještě lépe by se hláška měla objevit rovnou v okně pro vytváření nových slovníků, např. červeným nápisem "slovník s tímto IRI již existuje"
Je to vidět na příkladě eSbírky. eSbírka je komplexní model vytvořený v OntoGrapheru, obsahuje semantické vazby mezi pojmy, včetně podtříd, vlastností atd. Když ho nahraju do TermIta, mám glosář bez jakýchkoliv vztahů mezi pojmy. Očekával bych minimálně:
Všechny nástroje výrobní linky pracující přes HTTPS musí umět TLSv1.3
Při každé interakci s endpointem.
Nyní je většina MV ČR serverů nastavena na podporu TLSv1.2 a TLSv1.3. TLSv1.2 již ale není doporučené pro moderní webové servery a tedy bude v nějaké (více či méně blízké) budoucnosti vypnuto, a zůstane TLSv1.3. To může způsobit problém s připojením přes HTTPS u nástrojů, které TLSv1.3 neumí, jak se to již v minulosti stalo. Dnes používané knihovny (např. Java) ale již TLSv1.3 podporují. Je tak třeba se jen ujistit, že ve výrobní lince nejsou používány staré verze, případně je updatovat.
V kontrolním panelu po vytvoření nového pracovního prostoru a vytvoření nového slovníku v něm (v mém případě datového) se "neodšediví" tlačítka pro editaci pojmů a vztahů v detailu pracovního prostoru. Musím stránku refreshnout, pak už to je OK.
Dobrý den,
v nástroji OntoGrapher se od včerejšího odpoledne nedaří načíst pracovní prostor Veřejné zakázky. Nástroj stále zobrazuje, že se pracovní prostor načítá, schémata lze zobrazit aspoň pro čtení, ale není možné s nimi pracovat a editovat vztahy.
I. Rosická
Dobrý den, za účelem prezentace výstupů na pracovních týmech potřebujeme mít možnost z nástroje vyexportovat obrázek do nějakého šiřitelného formátu, např. jpg. Nemůžeme žádnou exportní funkci dohledat, což dost limituje využívání nástroje pro přípravu modelu v širším týmu. Je ta funkce někde skrytá, nebo je v dohledné době v plánu? Za info předem díky.
Z názvu v seznamu workspace jsou vidět pouze 2 znaky a sloupec nejde rozšířit.
Nástroj TermIt
Obrazovka: úvodní
Stanice: Mac + Safari
3. zpomaluje mě to,
Při otvírání pracovního prostoru s větším množstvím slovníků hlásí termit 'Request header too large'.
Při editaci pojmu mám v sekci Vztahy několik položek. Když pro každou z nich vyberu pojem, vizualizace výběru je pro každý z nich jiná. Chtělo by to sjednotit.
Kromě toho by bylo dobré celý blok přejmenovat na Vazby (podobně, jako jsme to udělali v OG)
Libovolný scénář, kdy uživatel edituje vazby. Vzhled by měl být stejný.
Začal jsem testovat vytváření vztahů v kompaktním režimu. Při naznačení šipky mezi dvěma objekty mi vyskočí dialog, ve kterém vytvořím nový vztah (nebo vyberu jeden z existujících, chyba se projevuje stejně) a potvrdím jeho vytvoření. V ten okamžik se OG zakousne. V Logu mám status 500 nad https://xn--slovnk-test-scb.mvcr.gov.cz/modelujeme/sluzby/db-server/repositories/assembly-line/transactions/e3bc9eb9-844b-49cd-bd23-03849bd78a73?action=UPDATE.
Pokud přepnu zpět do full zobrazení, chyba se začne projevovat úplně stejně.
Popište:
V současné době jsou slovníky chápány jako zdroje - legislativní slovník obsahuje pojmy jednoho zákon, agendový jedné agendy, atd. Pojem je v současné době se slovníkem pevně svázán - jak identifikátorem, tak věcně, neboť není možné, aby pojem byl součástí i jiného slovníku.
Výhodou tohoto přístupu je i to, že můžeme vyžadovat aby v jednom slovníku se nevyskytly dva pojmy se stejným názvem.
Pracovní prostory se teď proto používají jako transakce nad mnoha slovníky, protože typicky při tvorbě modelu potřebuji upravovat pojmy z více zdrojů.
Každá pojem by měl svůj "definiční slovník". V něm by se upravovaly základní atribut (název, definice, zdroj, ...?). Gestor slovníku by byl zodpovědný za úplnost těchto atributů pro pojmy, pro které je tento slovník definiční. Gestor jiného slovníku B by se mohl rozhodnout, že přepoužije pojem definovaný v jiném slovníku D. Potom by se slovník B stal pro pojem "používající slovník". V něm by se mohl pojem editovat také, ale bez základních atributů. Abychom umožnili přesouvání pojmů v budoucnu je třeba udělat identifikátor pojmu nezávislý na identifikátoru slovníku.
do budoucna: Gestor "používajícího slovníku" B by mohl požádat gestora "definičního slovníku" Do převzetí pojmu do správy (nebo naopak). Tím by se přenesla zodpovědnost za základní atributy a současně by se tyto atributy fyzicky přesunuly do B. U dalších atributů a vazeb je třeba rozhodnout jak by se přesouvaly (pokud by po přesunu byly dva pojmy v B spojeny vazbou, patřila by do B i tato vazba). Pro přesouvání pojmů bude třeba vytvořit novou komponentu a nový proces (stávájící WS by měly pouze jeden slovník editovatelný, a proto by to v nich nešlo).
Pokud chci vytvořit nový výskyt pojmu označením části textu, po stisknutí "mark term occurrence" se zvýrazní celý řádek. Toto zjednodušení bylo zavedeno pro definice, aby nebyl problém s vnořenými tagy, ale pro výskyty pojmu se používat nemá.
Na obrázku jsem označil text "historickým vozidlem" a výsledkem je označení celého (posledního) řádku.
Při zobrazení výrobní linky v mobilu se mi pro každý pracovní prostor pri kliknutí na Editovat pojmy zobrazí slovníky z pracovního prostoru Veřejné zakázky.
However, the 2nd vocabulary was actually added - I can see it in the workspace after refresh (F5).
Console:
AjaxObservable.ts:272 POST https://xn--slovnk-7va.gov.cz/modelujeme/sluzby/sgov-server/workspaces/instance-1584195892/vocabularies?vocabularyUri=https://slovn%C3%ADk.gov.cz/generick%C3%BD/osoby&readOnly=false&label=undefined 409
t.send @ AjaxObservable.ts:272
t @ AjaxObservable.ts:221
t._subscribe @ AjaxObservable.ts:139
e._trySubscribe @ Observable.ts:239
e.subscribe @ Observable.ts:221
e.call @ tap.ts:82
e.subscribe @ Observable.ts:215
e.call @ mapTo.ts:52
e.subscribe @ Observable.ts:215
e.call @ catchError.ts:106
e.subscribe @ Observable.ts:215
(anonymous) @ ImportVocabularyForm.tsx:136
onClick @ ImportVocabularyForm.tsx:257
Be @ react-dom.production.min.js:54
ze @ react-dom.production.min.js:54
(anonymous) @ react-dom.production.min.js:55
Mr @ react-dom.production.min.js:105
Dr @ react-dom.production.min.js:106
(anonymous) @ react-dom.production.min.js:117
Wu @ react-dom.production.min.js:272
Le @ react-dom.production.min.js:52
qr @ react-dom.production.min.js:109
Qt @ react-dom.production.min.js:74
Yt @ react-dom.production.min.js:73
hostReportError.ts:8 Uncaught e {message: 'ajax error 409', name: 'AjaxError', xhr: XMLHttpRequest, request: {…}, status: 409, …}
(anonymous) @ hostReportError.ts:8
setTimeout (async)
r @ hostReportError.ts:8
t.error @ Subscriber.ts:238
t._error @ Subscriber.ts:144
t.error @ Subscriber.ts:114
t.notifyError @ innerSubscribe.ts:71
t._error @ innerSubscribe.ts:35
t.error @ Subscriber.ts:114
(anonymous) @ throwError.ts:72
e._trySubscribe @ Observable.ts:239
e.subscribe @ Observable.ts:221
c @ innerSubscribe.ts:112
t.error @ catchError.ts:142
t._error @ Subscriber.ts:144
t.error @ Subscriber.ts:114
t._error @ tap.ts:136
t.error @ Subscriber.ts:114
t._error @ Subscriber.ts:144
t.error @ Subscriber.ts:114
u @ AjaxObservable.ts:416
load (async)
t.setupEvents @ AjaxObservable.ts:420
t.send @ AjaxObservable.ts:249
t @ AjaxObservable.ts:221
t._subscribe @ AjaxObservable.ts:139
e._trySubscribe @ Observable.ts:239
e.subscribe @ Observable.ts:221
e.call @ tap.ts:82
e.subscribe @ Observable.ts:215
e.call @ mapTo.ts:52
e.subscribe @ Observable.ts:215
e.call @ catchError.ts:106
e.subscribe @ Observable.ts:215
(anonymous) @ ImportVocabularyForm.tsx:136
onClick @ ImportVocabularyForm.tsx:257
Be @ react-dom.production.min.js:54
ze @ react-dom.production.min.js:54
(anonymous) @ react-dom.production.min.js:55
Mr @ react-dom.production.min.js:105
Dr @ react-dom.production.min.js:106
(anonymous) @ react-dom.production.min.js:117
Wu @ react-dom.production.min.js:272
Le @ react-dom.production.min.js:52
qr @ react-dom.production.min.js:109
Qt @ react-dom.production.min.js:74
Yt @ react-dom.production.min.js:73
Similar situation occurs when I remove a vocabulary from a workspace after I removed another one.
V Ontographeru (pracovní prostor Veřejné zakázky) nám z diagramů zmizely vazby (ve slovnících jsou zachovány). V průběhu dne dokonce na diagramech nebyly zobrazené ani pojmy a diagramy byly prázdné. Nyní odpoledne už vidím na diagramech část pojmů (ne všechny), ale většina vazeb byla odstraněna. Přikládám screen:
Problém je pro nás závažný, schémata znovu nakreslíme, ale jen díky tomu, že máme zachované screeny. Děkuji.
Edit: Po opětovném přihlášení do pracovního prostoru a zobrazení si vztahů v Ontographeru už na diagramu nevidím ani většinu pojmů viz screen níže:
Informace na diagramech se mění v čase.
Nejde dohledat druhy argument relatoru v sekci "Links" pro entitu ma-cenu.
Při vytváření nového pojmu nemůžu přiřadit nadřazený pojem ze slovníku, který není ve WS. V roletě se mi pojmy objeví (občas to trvá, občas jim chybí label se slovníkem, ze kterého pochází). Když pojem vyberu, zobrazí se pod výběrovou lištou. Při uložení pojmu ale dostanu chybu:
No result found for query SELECT ?vocabulary WHERE { <https://slovník.gov.cz/agendový/slovn-k-z-kona-56-2001-sb-rky-ve-ws-michala-meda/pojem/vozidlo> <http://onto.fel.cvut.cz/ontologies/slovník/agendový/popis-dat/pojem/je-pojmem-ze-slovníku> ?vocabulary . }
Pokud pojem uložím bez toho, je všechno v pořádku, ale nemám přiřazený nadřazený pojem. Zajímavé je, že když potom pojem otevřu pro editaci a přidám nadřazený pojem, tak už všechno proběhne v pořádku. Chyba se tedy projevuje pouze při vytváření nového pojmu.
Nadřazené pojmy z jiných slovníků nepřidávat při vytvážení, ale pouze v editaci. ALe lepší bude to prostě opravit.
Narazil jsem na to během testování milestonu 1a
Po otevření OG z WS vytvořeného minulý týden pro testování milestonu 1a jsou labely všech pojmů . V detailu pojmu je blank jako english verze, ale nejde překliknout na českou.
Asi souvisí s přepínáním jazykových mutací OG.
Výrobní linka by měla obsahovat nový "demo" režim. Pro jeho podporu potřebujeme VL komponenty spouštět se speciálním feature flagem.
Informace, zda jde o "demo" režim, se bude posílat pomocí env FEATURE_DEMO pro backendové komponenty a pomocí components.yml souboru pro frontendové komponenty.
Minimální technické úpravy:
Pro propagování hodnoty z components.yml na frontend je třeba vygenerovat .env soubor pomocí utility gen_env.sh. Ta zakóduje soubor components.yml pomocí base64, aby se dal dobře sdílet s frontendem.
Vlastnímu slovníku přidám nový dokument a přidám do něj HTML soubor stažený ze zákonů pro lidi. Při pokusu o analýzu souboru pomocí "jejího" slovníku dostanu hlášku "Text analysis invocation failed". Testováno v pracovním prostoru Avo Kádo - školení v jediném slovníku a dokumentu, který obsahuje.
Název slovníku se zobrazuje jako "undefined".
Slovník je korektně přidán do pracovního prostoru.
TermIt zobrazuje název slovníku také jako undefined a neobsahuje žádné pojmy.
V OntoGrapheru slovník také nezobrazuje žádné pojmy.
Cílem je upravit VL pro školení.
mission control
ontographer
příklady pracovních prostorů
Pokud by bylo možné importovat model ve standardní notaci zpracovaný běžným nástrojem (např. Enterprise Architect), tak by to umožnilo snáze překlenout počáteční fázi. Model bychom při vytváření udělali vedle a sem jej jen přemístili. Při tvorbě děláme mnoho změn (model tvoříme v kolektivu cca 10 lidí) a omezení nástroje dost ztěžují plynulost procesu.
Popište:
Pokud je to možné, pokuste se informaci o chybě rozepsat dle následující struktury, pomůžete nám ji rychleji identifikovat a opravit.
V dokumentu zákona č. 56/2001 v pracovním prostoru Školení - řidiči a vozidla v testovacím nasazení výrobní linky, při označení části textu na obrázku, výběr označení definice pojmu a výběr pojmu silniční vozidlo. Potvrzení změny definice tlačítkem "Uložit". Chvilku se TermIt tváří, že pracuje, pak text zmodrá, ale popup okno zůstane. Po zavření výskyt definice zmizí (i zmodrání).
Log:
{"message":"Expected single value with language tag cs of attribute definition of instance https://slovník.gov.cz/legislativní/sbírka/56/2001/pojem/silniční-vozidlo, but got multiple.","requestUri":"/modelujeme/sluzby/termit-server/rest/vocabularies/2001/terms/silni%C4%8Dn%C3%AD-vozidlo"}
Opět máme problém s Ontographerem, ani kolegům se nedaří si načíst pracovní prostor Veřejné zakázky v Ontographeru.
V pracovním prostoru Školení - řidiči a vozidla na testovací výrobní lince se nezobrazí slovníky (ačkoliv jsou určitě načtené, zobrazuje se filtrovat ve 2 slovnících). VIz screenshot:
Log:
{"message":"Vocabulary https://slovník.gov.cz/agendový/slovn-k-ava-k-da does not exist in workspace Workspace{Školení - řidiči a vozidla https://slovník.gov.cz/datový/pracovní-prostor/pojem/metadatový-kontext/instance946326684}","requestUri":"/modelujeme/sluzby/termit-server/rest/terms/motorov%C3%A9-vozidlo"}
Řekl bych, že se TermIt zasekl na vyhledávání pojmu "motorové vozidlo" a nějak se ho neumí zbavit.
V současné době jsou diagramy ukládány pouze v pracovním prostoru a nejsou publikovány. Uživatelé tak pracovní prostory raději nemažou protože mají v diagramech práci, o kterou nechtějí přijít. Tím je porušena původní myšlenka pracovních prostorů, jako krátkých transakcí nad SSP.
OntoGrapher:
OntoGrapher bude načítat všechny diagramy z SSP Cache pro daný slovník z WS. Taky umožní ke slovníku přidávat diagram (jak teď vybrat slovník? (nový popup třeba) - v budoucnu by měl být 1 slovník per workspace tak by to neměl být problém) a všechny diagramy daného slovníku měnit - název i obsah. OntoGrapher zajistí, aby nebylo možné vytvořit diagram s názvem, který již v daném slovníku existuje. Diagramy daného slovníku bude možné upravovat a mazat.
v budoucnu: zvážit možnost kopírovat diagramy jiných slovníků do aktuálního slovníku
sgov-server + pipeline na GH:
Diagramy se budou ukládat jako součást slovníků na GitHub. Co soubor to diagram. Každý diagram má svůj identifikátor (IRI), jehož localName bude názvem souboru (nějaký hash). Název diagramu bude pouze v datech samotných. Po zamergování workspace se musí aktualizovat SSP Cache i o diagramy.
Vyplňování kardinalit vazeb v OntoGrapheru je zdlouhavé. Částečně lze práci usnadnit tak, že se vhodně definují defaultní kardinality, ale jednak to není jednoznačné (např. pro vlastnost chci 0..*, protože je nejobecnější, nebo 0..1, protože je nejběžnější?), jednak se stále může vyskytnout mnoho vazeb, kde defaultní kardinalita nevyhovuje.
Cílem je umožnit vybrat hrany (přímo selekcí, nebo všechny) a pro výběr změnit kardinality hromadně.
Dobrý den,
v Ontographeru, v pracovním prostoru Veřejné zakázky mezi typem objektu a typem vztahu, stejně tak mezi typem objektu a typem vlastnosti, lze jako kompatibilní vazbu vytvořit pouze generalizaci, ostatní vazby jsou nekompatibilní. Při zobrazení v kompaktním modu potom některé objekty "plavou", viz obr.
I. Rosická
V prohlížeč Safari na macOS se nelze posouvat ve schématu, je nutno odzoomovat a pak se zkusit přizoomovat na potřebné místo.
Minulý týden jsem hlásila issue #70, pod mým účtem však stále nelze zobrazit diagramy v pracovním prostoru Veřejné zakázky (screen dole). Kolegové vidí data v pořádku, problém přetrvává u mne. Zkoušela jsem následující:
Prosím o info, jak dále postupovat. Děkuji.
Při testování scénáře pro milestone 1a jsem narazil na tento problém:
Až do kroku 10 je všechno v pořádku. V novém WS se diagram zobrazí jinak, než jak vypadal v tm prvním (už smazaném).
Na diagramu chybí pojem Part of the builidng, ale jsou tam navíc tři blank pojmy ze 111/2009 (při přepnutí do full view je vidět, že na ně vedou relátory z 359/2011).
I would like to be able to add notes/comments to a workspace. Currently, we can add comments on GitHub to a PR when a workspace is published. A workspace should be short-living. However, still there are can be workspaces where the necessary work takes more than a working day. Or I cannot finish the work because I need someone else to do something in another workspace. In these cases I would like to record what I did in the workspace, what remains to do or why I keep it open.
V pracovním prostoru Slovník vyhlášky č. 393/2020 Sb., o digitální technické mapě kraje v záložce Předmět úpravy se objevují pojmy, které do ní nebyly přidány, ale byly vytvořeny v záložkách Obsah digitální technické mapy a § 2 (1). Můžu je skrýt, ale potom, co se vrátím do záložky Předmět úpravy se mi znovu objeví.
Pojmy jsou v levém panelu řazeny pouze podle UFO klasifikace, která může být mezi pojmy poděděna, ale to je OG jedno. Oproti tomu podle OntoUML stereotypu třídit nelze.
Jako uživatel TermIta
potřebuji specializovat pojem z nadřazeného slovníku ve svém slovníku
abych zaznamenal např. že veřejný zadavatel (ze zákona 134/2016 Sb) má organizační složku státu (ze zákona 111/2009) jako podřazený pojem.
Popište, jak užitečná Vám funkce přijde
2. zmíněný scénář lze bez funkce realizovat, ale zdržuje mě to
Workaround - upravit pojem přímo v zákoně 111/2009, ovšem tím se pojem dostává do jiného slovníku, než kde ho chceme mít.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.