Testování SOLID

Diskuse členů a příznivců o věcech přesahujících působnost orgánů, netýkajících se programu nebo o straně jako celku.

Moderátoři: Administrativní odbor, Předsedající

Pravidla fóra
Než napíšete nový příspěvek, zamyslete se, zda má takovou hodnotu, aby ho musely číst stovky lidí.
  • Aktuální politické kauzy lze řešit v příslušné části veřejné diskuze.
  • Části programu, současné či budoucí, diskutujte na fóru Pirátský program.
  • Podání orgánům a jednoduché návrhy čiňte v příslušné podatelně.
  • Pokud chcete něco rozhodnout(usnést, zvolit, odvolat, přijmout), podejte členský podnět. Ale nejdřív zvažte, jestli by na to nestačil třeba republikový výbor.
  • Povídat o čemkoli si můžete v Podpalubí, což je skrytá část fóra otevřená všem zájemcům. (Je třeba se přidat do skupiny "Zobrazit - Podpalubí".)
Dodržujte prosím pravidla fóra.
Uživatelský avatar
Lukas.Novy
Příznivec Pirátů – Jihomoravský kraj
Příspěvky: 21689
Registrován: 02 črc 2009, 22:45
Profese: auditor počítačové bezpečnosti
Bydliště: Brno
Dal poděkování: 5190 poděkování
Dostal poděkování: 12547 poděkování
Kontaktovat uživatele:

Re: Testování SOLID

Příspěvek od Lukas.Novy »

Petr.Vileta píše:
Tomas.Klapka píše:Decentralizing the Semantic Web: Who will pay to realize it?
Tobias Grubenmann, Daniele Dell'Aglio, Abraham Bernstein, Dmitry Moor, Sven Seuken
Těch pět vůbec neznám, ale fakt to všechno zaplatí? :o
Porusujes komunikacni minimum, nahlasuji te.

Demokracie je diskuse.
| ‒ | – | — | ― | … | „ | “ | ‚ | ‘ | » | « | ½ | ¼ | ¾ | × | ‰ | ® | © | ™ | Tel: 777-5-KRTEK

Uživatelský avatar
Tomas.Klapka
Návštěvník – nepatří k Pirátům
Příspěvky: 1985
Registrován: 30 kvě 2010, 18:50
Profese: discordian pope
Dal poděkování: 1715 poděkování
Dostal poděkování: 3357 poděkování
Kontaktovat uživatele:

Re: Testování SOLID

Příspěvek od Tomas.Klapka »

- první publikovatelná verze scrapperu, který konvertuje data z fora do RDF: https://github.com/tomasklapka/forum.pirati.cz-rdf
- seed pro angular solid app už buildí bez chyb. Workaround sem nahradil lepším řešením (ng eject + webpack externals).

Chystám se na prohlížeč FOAF/SIOC dat, aby se dalo nascrapovaná data z fora (ale i odjinud) prohlížet.
Tito uživatelé poděkovali autorovi Tomas.Klapka za příspěvek:
Vit.Fux

You'll be redlacep!

Uživatelský avatar
Tomas.Klapka
Návštěvník – nepatří k Pirátům
Příspěvky: 1985
Registrován: 30 kvě 2010, 18:50
Profese: discordian pope
Dal poděkování: 1715 poděkování
Dostal poděkování: 3357 poděkování
Kontaktovat uživatele:

Re: Testování SOLID

Příspěvek od Tomas.Klapka »

Nedalo mi to, a doladil sem nějaký věci ve scrapperu, takže to scrapuje líp, stabilněji a rychleji. Scrapper pouštím s intervalem 2 stránky za sekundu - kratšího intervalu by si server všiml.
Fórum mělo ke včerejšku 143550 stránek dostupných pro RegP se zapnutým Podpalubím. Což dělá cca 20 hodin scrapování.
Výsledkem jsou forumová data v RDF. Vzhledem k tomu, že jsem nikdy žádná data do RDF neukládal, tak ty data nejsou ještě správně strukturovaný, prolinkovaný, konzistentní - ladím průběžně.

Ukázka nascrapovaných informací k profilové stránce jiri-kaderavek-u56/ OFFTOPIC(seznam poděkování, namapovaných prozatím na property as:Like, jsem zkrátil, kvůli přehlednosti):

Kód: Vybrat vše

@prefix : <#>.
@prefix acc: <https://forum.pirati.cz/jiri-kaderavek-u56/>.
@prefix jiri: <https://forum.pirati.cz/jiri-kaderavek-u56/#>.

@prefix dc: <http://purl.org/dc/elements/1.1/>.
@prefix terms: <http://purl.org/dc/terms/>.
@prefix XML: <http://www.w3.org/2001/XMLSchema#>.
@prefix sioc: <http://rdfs.org/sioc/ns#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@prefix as: <https://www.w3.org/ns/activitystreams#>.

@prefix t1: <https://forum.pirati.cz/administrativa-f498/ukol-rezervacni-evidencni-a-ucetni-system-pro-akce-piratu-t7912.html#>.
@prefix t2: <https://forum.pirati.cz/administrativni-odbor-f182/ao-1-2011-pokyn-spusteni-piratske-site-t6558.html#>.
@prefix t3: <https://forum.pirati.cz/administrativni-odbor-f182/diskuse-k-prihlasce-vzor-2012-t10576.html#>.

acc:
    a sioc:UserAccount;
    dc:description "Zakladatel &#x10C;esk&#xE9; pir&#xE1;tsk&#xE9; strany"@cs;
    terms:created "2009-04-21T09:58:00Z"^^XML:dateTime;
    sioc:account_of jiri:card;
    sioc:avatar
    <https://forum.pirati.cz/./download/file.php?avatar=56_1269555563.jpg>;
    sioc:id 56;
    sioc:member_of
        <https://forum.pirati.cz/celostatni-forum-g47.html>,
        <https://forum.pirati.cz/ks-jihomoravsky-kraj-g36.html>,
        <https://forum.pirati.cz/mo-pracovni-g95.html>,
        <https://forum.pirati.cz/pracovni-skupina-volnocasove-aktivity-g184.html>,
        <https://forum.pirati.cz/registered-g2.html>;
    foaf:accountName "Jiri.Kaderavek";
    as:Like
        t1:p114557, t2:p91819, t3:p126009, t3:p126042, t3:p129857
jiri:card
    a foaf:Person;
    foaf:account acc:;
    foaf:age 46;
    foaf:homepage <http://www.facebook.com/jiri.kaderavek>;
    foaf:img
    <https://forum.pirati.cz/./download/file.php?avatar=56_1269555563.jpg>;
    foaf:jabberID "jiri.kaderavek@webstep.net";
    foaf:nick "Jiri.Kaderavek".
Teď teprve začínám vytvářet aplikaci, co ty data bude umět zobrazit.

Seed, co jsem opravil minule, měl ještě bug. Teď už buildí správně a aplikace zobrazí uvítací stránku s verzí nainstalované solid-client knihovny a odkazy na tutorial a nějaké další info. To by mohlo usnadnit začátek komukoliv, kdo by chtěl zkusit vyrobit angular aplikaci pro Solid.

Abych to už nemusel znovu hledat, tak si sem hodim pár linků...

SIOC:
Narazil sem na perl knihovnu SIOC: https://metacpan.org/release/SIOC
a na jeden prohlížeč SIOC dat v python2: https://code.google.com/archive/p/siocwave/
Našel sem taky jeden web, který poskytuje svoje data v RDF: http://www.mkbergman.com/ (http://www.mkbergman.com/index.php?sioc_type=site)
SIOC spec a overview: http://rdfs.org/sioc/spec/#sec-overview

Obecné:
Linked Data 101 http://rhiaro.github.io/sws/
RDF schema https://www.w3.org/TR/rdf-schema/
Fetch nahrazuje CORS?: https://lists.w3.org/Archives/Public/pu ... /0008.html

Užitečné a nesouvisející:
online Markdown editor (github flavour) http://jbt.github.io/markdown-editor/

Další aplikace, co se budou hodit: EDIT: doplněny další aplikace.
Tito uživatelé poděkovali autorovi Tomas.Klapka za příspěvky (celkem 3):
Vojtech.Pikal, torrespondent, Vit.Fux

You'll be redlacep!

Uživatelský avatar
Tomas.Klapka
Návštěvník – nepatří k Pirátům
Příspěvky: 1985
Registrován: 30 kvě 2010, 18:50
Profese: discordian pope
Dal poděkování: 1715 poděkování
Dostal poděkování: 3357 poděkování
Kontaktovat uživatele:

Re: Testování SOLID

Příspěvek od Tomas.Klapka »

Měl sem dovolenou tak sem se moc nepohnul a nic sem nereportoval.
Navázal sem na nějaký věci z dávných dob a pokračuju ve vyrábění high level RDF knihovny pro jednodušší práci s daty.

Před chvílí sem publikoval první část knihovny implementující zatím to, co už je někde standardizovaný (PrefixMap, TermMap, Profile, RDFEnvironment): rdf-environment
Proxy už jsou nativní součástí node, tak brzy přidám ještě modul pro resource-oriented přístup ke grafům spolu s dalším modulem, který bude definovat ClassMap, kterou bude možné na různe rdf:type namapovat metody z tříd v js. Mám už nějakej funkční kód, ale potřebuju to zrefactorovat a napsat k tomu pořádný testy.

Taky sem si rozchodil EYE reasoner a zkusil sem udělat nějakej reasoning forumových dat. Například to správně vydedukuje, že když je něco sioc:Forum, tak je to zároveň i sioc:Container, apod.
Tím se usnadní filtrování nascrapovaných dat, protože se bude filtrovat/hledat ve všech výrocích, tj. i těch, co nejsou řečeny explicitně. Reasoning subtypů/subclass potřebuju i na správné resolvování mapování ClassMap.
Tito uživatelé poděkovali autorovi Tomas.Klapka za příspěvek:
Vit.Fux

You'll be redlacep!

Uživatelský avatar
Tomas.Klapka
Návštěvník – nepatří k Pirátům
Příspěvky: 1985
Registrován: 30 kvě 2010, 18:50
Profese: discordian pope
Dal poděkování: 1715 poděkování
Dostal poděkování: 3357 poděkování
Kontaktovat uživatele:

Re: Testování SOLID

Příspěvek od Tomas.Klapka »

Vyrobil sem JS modul, který funguje jako EyeClient k EYE reasoning serveru: rdf-reasoner-eyeclient (publikováno i jako npm package).
Reasoner umožňuje z dostupných dat dedukovat další informace (např. to, že má někdo dítě, znamená, že je rodič toho dítěte, apod.).

Začal sem experimentovat s knihovnou SimpleRDF a nejspíš ji použiju, abych nemusel ztrácet čas vytvářením vlastního high level rozhraní. V devel branchi je SimpleRDF již pluginovatelná.
Teď si hraji s automatickým vytvářením SimpleRDF contextů (mapování property objektu dle typu resourcu)

Ještě předpokládám budu potřebovat webovou aplikaci, kterou si pustím u sebe na serveru, která bude umět přes HTTP konvertovat RDF data z netu z libovolného RDF formátu do libovolného RDF formátu. Něco podobného už existuje, ale nevím, ještě jak moc je to použitelné. Dostupná veřejná instalace je příliš pomalá a nedá se na ní spoléhat. A k tomu bych pak ještě potřeboval udělat klientskej modul.

Ještě zvažuju cachování případně mirrorování. Bude totiž potřeba některé dotazy dělat opakovaně, například dotazy na nejběžnější ontologie. Možná by se mohl udělat package s nejčastějšíma ontologiema, který by fungoval jako local store a zároveň by se dal použít jako mirror.
Tito uživatelé poděkovali autorovi Tomas.Klapka za příspěvky (celkem 2):
torrespondent, Vit.Fux

You'll be redlacep!

Uživatelský avatar
Tomas.Klapka
Návštěvník – nepatří k Pirátům
Příspěvky: 1985
Registrován: 30 kvě 2010, 18:50
Profese: discordian pope
Dal poděkování: 1715 poděkování
Dostal poděkování: 3357 poděkování
Kontaktovat uživatele:

Re: Testování SOLID

Příspěvek od Tomas.Klapka »

Jak sem psal včera o tom konvertoru, tak sem jej vyrobil jako Express middleware proxy konvertující data mezi RDF formáty: https://github.com/tomasklapka/http-rdf-formats-proxy
Hodí se to například pokud máte aplikaci, která rozumí jen nějakému formátu, jako je například EYE reasoner (jen n3 a turtle), ale chcete ji nakrmit odkazy na data uložená třeba v jsonld

Spuštění serveru:

Kód: Vybrat vše

const express = require('express')
const formatsProxy = require('http-rdf-formats-proxy')
const app = express()
app.get('/proxy', formatsProxy())
app.server = app.listen(8000)
Použití skrze HTTP dotazy:

Kód: Vybrat vše

curl -H 'Accept: text/n3' 'http://localhost:8000/proxy?uri=http://example.com/resource.jsonld'
curl -H 'Accept: text/turtle' 'http://localhost:8000/proxy?uri=http://example.com/resource.n3'
curl -H 'Accept: application/ld+json' 'http://localhost:8000/proxy?uri=http://example.com/resource.n3'
curl -H 'Accept: application/n-triples' 'http://localhost:8000/proxy?uri=http://example.com/resource.n3'

You'll be redlacep!

Uživatelský avatar
Tomas.Klapka
Návštěvník – nepatří k Pirátům
Příspěvky: 1985
Registrován: 30 kvě 2010, 18:50
Profese: discordian pope
Dal poděkování: 1715 poděkování
Dostal poděkování: 3357 poděkování
Kontaktovat uživatele:

Re: Testování SOLID

Příspěvek od Tomas.Klapka »

Nově umí http-rdf-formats-proxy konvertovat i v dopředném směru, takže lze použít POST/PUT/PATCH a určením query parametru produce lze určit content-type, do kterého se má payload zkonvertovat dříve, než se pošle proxy request. Lidem, co dělají knihovnu rdf-ext, se proxy líbí, tak se stala součástí jejich suite a nově sídlí pod rdf-ext organizací na githubu (https://github.com/rdf-ext/http-rdf-formats-proxy).

Vytvořil sem parser a serializer, který používá new line separated JSON formát pro quady dle interfacu definováného ve specifikaci RDFJS. Formát má mime: application/rdfjs+json.
Formát lze použít pro rychlou výměnu dat a zároveň umožňuje klientským aplikacím fungovat bez dalších parserů (JSON.parse je rychlej a je součástí JS). Oba moduly lze použít i v konvertoru.

Mimochodem, jak konvertor, tak JSON serializovaný formát, navrhl vytvořit Dmitri Zagidulin na gitter chatu RDFJS Representation Task Force.
Mě to přišlo jako dobrej nápad, protože sám potřebuju něco konvertovat a líbí se mi i možnost nemuset mít v browseru žádnej speciální parser, pokud server rozumí formátu application/rdfjs+json.

You'll be redlacep!

Uživatelský avatar
Tomas.Klapka
Návštěvník – nepatří k Pirátům
Příspěvky: 1985
Registrován: 30 kvě 2010, 18:50
Profese: discordian pope
Dal poděkování: 1715 poděkování
Dostal poděkování: 3357 poděkování
Kontaktovat uživatele:

Re: Testování SOLID

Příspěvek od Tomas.Klapka »

Blíží se node-solid-server release v4.0.0 a na gitu je už spousta fixnutých věcí, tak skládám vše dohromady...

Use case je pustit solid server za nginx proxy, abych na stejném https portu mohl mít více domén (další weby nebo instance solid serveru), a zároveň chci aby na stejné doméně se solid serverem (mountnutým na root /) běželi další aplikace jako middleware (mountnutý třeba na /apps/<aplikace>)

sendilo (https://github.com/sendilo/sendilo) je malej package, kterej spouští solid server s injectovaným expressem s http-rdf-formats-proxy a eyeserverem
sendilkontenero (https://github.com/sendilo/sendilkontenero) obsahuje docker-compose.yml, kterej managuje nginx-proxy, Let's Encrypt companion a sendilo

aby to bylo možné, tak do node-solid-server přijali dva moje PR: https://github.com/solid/node-solid-server/pull/576 a https://github.com/solid/node-solid-server/pull/577

TODO:
- TLS se chová divně. Po přihlášení přes TLS se pak každej request redirectuje na index.html nezávisle na request path
- LE companion nevaliduje
- kompilaci EYE reasoneru přesunout do jiného kontejneru
- vyvarovat se duplikování kódu pro eyeserver -> upgrade na express 4.X a úprava, aby šel pustit jako middleware (udělat PR)
Tito uživatelé poděkovali autorovi Tomas.Klapka za příspěvky (celkem 2):
Vit.Fux, Pavel.Moravec

You'll be redlacep!

Uživatelský avatar
Tomas.Klapka
Návštěvník – nepatří k Pirátům
Příspěvky: 1985
Registrován: 30 kvě 2010, 18:50
Profese: discordian pope
Dal poděkování: 1715 poděkování
Dostal poděkování: 3357 poděkování
Kontaktovat uživatele:

Re: Testování SOLID

Příspěvek od Tomas.Klapka »

Změny k docker konfiguraci: https://github.com/sendilo/sendilkontenero
S TLS jsou za nginx proxy stále nějaké problémy, tak jsem switchnul nginx za haproxy, která umí SSL/TLS passthrough. Funguje to skvěle a celkově je to jednodušší!
Spolu s tím sem musel změnit i managování certifikátů: nově jsou v repu dva skripty cert-get - pro získání certifikátu - a cert-renew - pro obnovování. cert-renew stačí dát do cronu ke spuštění jednou denně třeba.
změnil sem strukturu mountovaných adresářů, protože jich začalo být hodně a takhle je to přehlednější

You'll be redlacep!

Uživatelský avatar
Tomas.Klapka
Návštěvník – nepatří k Pirátům
Příspěvky: 1985
Registrován: 30 kvě 2010, 18:50
Profese: discordian pope
Dal poděkování: 1715 poděkování
Dostal poděkování: 3357 poděkování
Kontaktovat uživatele:

Re: Testování SOLID

Příspěvek od Tomas.Klapka »

Server je zdá se stabilní. Moje instalace běží na https://tomas.klapka.cz/
Moje WebID je https://tomas.klapka.cz/profile/card#me

Nepředpokládám, že se do toho budete chtít v blízké době taky pouštět, když na to jěště nejsou téměř žádné aplikace. Protože si to ale potřebuju nějak shrnout, tak napíšu stručný postup, jak si rozjet vlastní pod:

Chcete-li vlastní pod, potřebujete nějakou doménu a (virtuální) server, kde máte nainstalovaný funkční docker a docker-compose. Doména musí směrovat na IP vašeho serveru.
Naklonujte si tohle repo: https://github.com/sendilo/sendilkontenero , zkopírujte konfiguráky z adresáře config.examples do adresáře config a upravte je (mělo by stačit změnit example.com na vaši doménu).
Skriptem cert-get získáte Let's Encrypt SSL certifikáty pro https.
Do cronu si nastavte cert-renew, třeba na jednou denně.
Všechny kontejnery pak pustíte příkazem

Kód: Vybrat vše

docker-compose up -d
docker-compose umí pouštět služby selektivně, tak se podívejte na docker-compose up --help jak a do docker-compose.yml se podívete na to, jaké služby a kontejnery konfigurák pouští.

Může se vám hodit https://vpsfree.cz/ OFFTOPICJá mám virtuální server u wedosu. vpsfree sem neznal a zvažuju k nim přechod.

V docker kontejnerech si na svém serveru provozuju i vlastní email a jabber tomas@klapka.cz.
V případě zájmu můžu zasdílet svůj setup.

Nevíte-li si s něčím z toho postupu rady, tak se mi ozvěte na ten mail/jabber nebo tady ve vlákně. Rád vám s tím pomůžu.
Naposledy upravil(a) Tomas.Klapka dne 12 zář 2017, 08:07, celkem upraveno 1 x.
Tito uživatelé poděkovali autorovi Tomas.Klapka za příspěvky (celkem 4):
Vit.Fux, Vojtech.Pikal, Pavel.Moravec, Jiri.Ulip

You'll be redlacep!

Odpovědět

Zpět na „Vnitrostranická diskuse“