├── .dockerignore ├── .eslintrc ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.MD ├── app.js ├── bin ├── cmd ├── fetchTurtle ├── validate ├── validate_owl └── www ├── cmd.Dockerfile ├── dist └── n3unit.pvm ├── docs ├── .gitignore ├── README.md ├── blog │ └── 2019 │ │ └── 09 │ │ └── shacl-subclassof.html ├── css │ ├── coming-soon.css │ └── coming-soon.min.css ├── gulpfile.js ├── img │ └── bg-mobile-fallback.jpg ├── index.html ├── js │ ├── coming-soon.js │ └── coming-soon.min.js ├── mp4 │ └── bg.mp4 ├── package-lock.json ├── package.json ├── scss │ ├── _bootstrap-overrides.scss │ ├── _global.scss │ ├── _masthead.scss │ ├── _mixins.scss │ ├── _social.scss │ ├── _variables.scss │ └── coming-soon.scss └── vendor │ ├── bootstrap │ ├── css │ │ ├── bootstrap-grid.css │ │ ├── bootstrap-grid.css.map │ │ ├── bootstrap-grid.min.css │ │ ├── bootstrap-grid.min.css.map │ │ ├── bootstrap-reboot.css │ │ ├── bootstrap-reboot.css.map │ │ ├── bootstrap-reboot.min.css │ │ ├── bootstrap-reboot.min.css.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ └── js │ │ ├── bootstrap.bundle.js │ │ ├── bootstrap.bundle.js.map │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.js │ │ ├── bootstrap.js.map │ │ ├── bootstrap.min.js │ │ └── bootstrap.min.js.map │ ├── fontawesome-free │ ├── LICENSE.txt │ ├── README.md │ ├── css │ │ ├── all.css │ │ ├── all.min.css │ │ ├── brands.css │ │ ├── brands.min.css │ │ ├── fontawesome.css │ │ ├── fontawesome.min.css │ │ ├── regular.css │ │ ├── regular.min.css │ │ ├── solid.css │ │ ├── solid.min.css │ │ ├── svg-with-js.css │ │ ├── svg-with-js.min.css │ │ ├── v4-shims.css │ │ └── v4-shims.min.css │ ├── js │ │ ├── all.js │ │ ├── all.min.js │ │ ├── brands.js │ │ ├── brands.min.js │ │ ├── fontawesome.js │ │ ├── fontawesome.min.js │ │ ├── regular.js │ │ ├── regular.min.js │ │ ├── solid.js │ │ ├── solid.min.js │ │ ├── v4-shims.js │ │ └── v4-shims.min.js │ ├── less │ │ ├── _animated.less │ │ ├── _bordered-pulled.less │ │ ├── _core.less │ │ ├── _fixed-width.less │ │ ├── _icons.less │ │ ├── _larger.less │ │ ├── _list.less │ │ ├── _mixins.less │ │ ├── _rotated-flipped.less │ │ ├── _screen-reader.less │ │ ├── _shims.less │ │ ├── _stacked.less │ │ ├── _variables.less │ │ ├── brands.less │ │ ├── fontawesome.less │ │ ├── regular.less │ │ ├── solid.less │ │ └── v4-shims.less │ ├── package.json │ ├── scss │ │ ├── _animated.scss │ │ ├── _bordered-pulled.scss │ │ ├── _core.scss │ │ ├── _fixed-width.scss │ │ ├── _icons.scss │ │ ├── _larger.scss │ │ ├── _list.scss │ │ ├── _mixins.scss │ │ ├── _rotated-flipped.scss │ │ ├── _screen-reader.scss │ │ ├── _shims.scss │ │ ├── _stacked.scss │ │ ├── _variables.scss │ │ ├── brands.scss │ │ ├── fontawesome.scss │ │ ├── regular.scss │ │ ├── solid.scss │ │ └── v4-shims.scss │ ├── sprites │ │ ├── brands.svg │ │ ├── regular.svg │ │ └── solid.svg │ ├── svgs │ │ ├── brands │ │ │ ├── 500px.svg │ │ │ ├── accessible-icon.svg │ │ │ ├── accusoft.svg │ │ │ ├── adn.svg │ │ │ ├── adversal.svg │ │ │ ├── affiliatetheme.svg │ │ │ ├── algolia.svg │ │ │ ├── alipay.svg │ │ │ ├── amazon-pay.svg │ │ │ ├── amazon.svg │ │ │ ├── amilia.svg │ │ │ ├── android.svg │ │ │ ├── angellist.svg │ │ │ ├── angrycreative.svg │ │ │ ├── angular.svg │ │ │ ├── app-store-ios.svg │ │ │ ├── app-store.svg │ │ │ ├── apper.svg │ │ │ ├── apple-pay.svg │ │ │ ├── apple.svg │ │ │ ├── asymmetrik.svg │ │ │ ├── audible.svg │ │ │ ├── autoprefixer.svg │ │ │ ├── avianex.svg │ │ │ ├── aviato.svg │ │ │ ├── aws.svg │ │ │ ├── bandcamp.svg │ │ │ ├── behance-square.svg │ │ │ ├── behance.svg │ │ │ ├── bimobject.svg │ │ │ ├── bitbucket.svg │ │ │ ├── bitcoin.svg │ │ │ ├── bity.svg │ │ │ ├── black-tie.svg │ │ │ ├── blackberry.svg │ │ │ ├── blogger-b.svg │ │ │ ├── blogger.svg │ │ │ ├── bluetooth-b.svg │ │ │ ├── bluetooth.svg │ │ │ ├── btc.svg │ │ │ ├── buromobelexperte.svg │ │ │ ├── buysellads.svg │ │ │ ├── cc-amazon-pay.svg │ │ │ ├── cc-amex.svg │ │ │ ├── cc-apple-pay.svg │ │ │ ├── cc-diners-club.svg │ │ │ ├── cc-discover.svg │ │ │ ├── cc-jcb.svg │ │ │ ├── cc-mastercard.svg │ │ │ ├── cc-paypal.svg │ │ │ ├── cc-stripe.svg │ │ │ ├── cc-visa.svg │ │ │ ├── centercode.svg │ │ │ ├── chrome.svg │ │ │ ├── cloudscale.svg │ │ │ ├── cloudsmith.svg │ │ │ ├── cloudversify.svg │ │ │ ├── codepen.svg │ │ │ ├── codiepie.svg │ │ │ ├── connectdevelop.svg │ │ │ ├── contao.svg │ │ │ ├── cpanel.svg │ │ │ ├── creative-commons-by.svg │ │ │ ├── creative-commons-nc-eu.svg │ │ │ ├── creative-commons-nc-jp.svg │ │ │ ├── creative-commons-nc.svg │ │ │ ├── creative-commons-nd.svg │ │ │ ├── creative-commons-pd-alt.svg │ │ │ ├── creative-commons-pd.svg │ │ │ ├── creative-commons-remix.svg │ │ │ ├── creative-commons-sa.svg │ │ │ ├── creative-commons-sampling-plus.svg │ │ │ ├── creative-commons-sampling.svg │ │ │ ├── creative-commons-share.svg │ │ │ ├── creative-commons.svg │ │ │ ├── css3-alt.svg │ │ │ ├── css3.svg │ │ │ ├── cuttlefish.svg │ │ │ ├── d-and-d.svg │ │ │ ├── dashcube.svg │ │ │ ├── delicious.svg │ │ │ ├── deploydog.svg │ │ │ ├── deskpro.svg │ │ │ ├── deviantart.svg │ │ │ ├── digg.svg │ │ │ ├── digital-ocean.svg │ │ │ ├── discord.svg │ │ │ ├── discourse.svg │ │ │ ├── dochub.svg │ │ │ ├── docker.svg │ │ │ ├── draft2digital.svg │ │ │ ├── dribbble-square.svg │ │ │ ├── dribbble.svg │ │ │ ├── dropbox.svg │ │ │ ├── drupal.svg │ │ │ ├── dyalog.svg │ │ │ ├── earlybirds.svg │ │ │ ├── ebay.svg │ │ │ ├── edge.svg │ │ │ ├── elementor.svg │ │ │ ├── ello.svg │ │ │ ├── ember.svg │ │ │ ├── empire.svg │ │ │ ├── envira.svg │ │ │ ├── erlang.svg │ │ │ ├── ethereum.svg │ │ │ ├── etsy.svg │ │ │ ├── expeditedssl.svg │ │ │ ├── facebook-f.svg │ │ │ ├── facebook-messenger.svg │ │ │ ├── facebook-square.svg │ │ │ ├── facebook.svg │ │ │ ├── firefox.svg │ │ │ ├── first-order-alt.svg │ │ │ ├── first-order.svg │ │ │ ├── firstdraft.svg │ │ │ ├── flickr.svg │ │ │ ├── flipboard.svg │ │ │ ├── fly.svg │ │ │ ├── font-awesome-alt.svg │ │ │ ├── font-awesome-flag.svg │ │ │ ├── font-awesome-logo-full.svg │ │ │ ├── font-awesome.svg │ │ │ ├── fonticons-fi.svg │ │ │ ├── fonticons.svg │ │ │ ├── fort-awesome-alt.svg │ │ │ ├── fort-awesome.svg │ │ │ ├── forumbee.svg │ │ │ ├── foursquare.svg │ │ │ ├── free-code-camp.svg │ │ │ ├── freebsd.svg │ │ │ ├── fulcrum.svg │ │ │ ├── galactic-republic.svg │ │ │ ├── galactic-senate.svg │ │ │ ├── get-pocket.svg │ │ │ ├── gg-circle.svg │ │ │ ├── gg.svg │ │ │ ├── git-square.svg │ │ │ ├── git.svg │ │ │ ├── github-alt.svg │ │ │ ├── github-square.svg │ │ │ ├── github.svg │ │ │ ├── gitkraken.svg │ │ │ ├── gitlab.svg │ │ │ ├── gitter.svg │ │ │ ├── glide-g.svg │ │ │ ├── glide.svg │ │ │ ├── gofore.svg │ │ │ ├── goodreads-g.svg │ │ │ ├── goodreads.svg │ │ │ ├── google-drive.svg │ │ │ ├── google-play.svg │ │ │ ├── google-plus-g.svg │ │ │ ├── google-plus-square.svg │ │ │ ├── google-plus.svg │ │ │ ├── google-wallet.svg │ │ │ ├── google.svg │ │ │ ├── gratipay.svg │ │ │ ├── grav.svg │ │ │ ├── gripfire.svg │ │ │ ├── grunt.svg │ │ │ ├── gulp.svg │ │ │ ├── hacker-news-square.svg │ │ │ ├── hacker-news.svg │ │ │ ├── hackerrank.svg │ │ │ ├── hips.svg │ │ │ ├── hire-a-helper.svg │ │ │ ├── hooli.svg │ │ │ ├── hornbill.svg │ │ │ ├── hotjar.svg │ │ │ ├── houzz.svg │ │ │ ├── html5.svg │ │ │ ├── hubspot.svg │ │ │ ├── imdb.svg │ │ │ ├── instagram.svg │ │ │ ├── internet-explorer.svg │ │ │ ├── ioxhost.svg │ │ │ ├── itunes-note.svg │ │ │ ├── itunes.svg │ │ │ ├── java.svg │ │ │ ├── jedi-order.svg │ │ │ ├── jenkins.svg │ │ │ ├── joget.svg │ │ │ ├── joomla.svg │ │ │ ├── js-square.svg │ │ │ ├── js.svg │ │ │ ├── jsfiddle.svg │ │ │ ├── kaggle.svg │ │ │ ├── keybase.svg │ │ │ ├── keycdn.svg │ │ │ ├── kickstarter-k.svg │ │ │ ├── kickstarter.svg │ │ │ ├── korvue.svg │ │ │ ├── laravel.svg │ │ │ ├── lastfm-square.svg │ │ │ ├── lastfm.svg │ │ │ ├── leanpub.svg │ │ │ ├── less.svg │ │ │ ├── line.svg │ │ │ ├── linkedin-in.svg │ │ │ ├── linkedin.svg │ │ │ ├── linode.svg │ │ │ ├── linux.svg │ │ │ ├── lyft.svg │ │ │ ├── magento.svg │ │ │ ├── mailchimp.svg │ │ │ ├── mandalorian.svg │ │ │ ├── markdown.svg │ │ │ ├── mastodon.svg │ │ │ ├── maxcdn.svg │ │ │ ├── medapps.svg │ │ │ ├── medium-m.svg │ │ │ ├── medium.svg │ │ │ ├── medrt.svg │ │ │ ├── meetup.svg │ │ │ ├── megaport.svg │ │ │ ├── microsoft.svg │ │ │ ├── mix.svg │ │ │ ├── mixcloud.svg │ │ │ ├── mizuni.svg │ │ │ ├── modx.svg │ │ │ ├── monero.svg │ │ │ ├── napster.svg │ │ │ ├── neos.svg │ │ │ ├── nimblr.svg │ │ │ ├── nintendo-switch.svg │ │ │ ├── node-js.svg │ │ │ ├── node.svg │ │ │ ├── npm.svg │ │ │ ├── ns8.svg │ │ │ ├── nutritionix.svg │ │ │ ├── odnoklassniki-square.svg │ │ │ ├── odnoklassniki.svg │ │ │ ├── old-republic.svg │ │ │ ├── opencart.svg │ │ │ ├── openid.svg │ │ │ ├── opera.svg │ │ │ ├── optin-monster.svg │ │ │ ├── osi.svg │ │ │ ├── page4.svg │ │ │ ├── pagelines.svg │ │ │ ├── palfed.svg │ │ │ ├── patreon.svg │ │ │ ├── paypal.svg │ │ │ ├── periscope.svg │ │ │ ├── phabricator.svg │ │ │ ├── phoenix-framework.svg │ │ │ ├── phoenix-squadron.svg │ │ │ ├── php.svg │ │ │ ├── pied-piper-alt.svg │ │ │ ├── pied-piper-hat.svg │ │ │ ├── pied-piper-pp.svg │ │ │ ├── pied-piper.svg │ │ │ ├── pinterest-p.svg │ │ │ ├── pinterest-square.svg │ │ │ ├── pinterest.svg │ │ │ ├── playstation.svg │ │ │ ├── product-hunt.svg │ │ │ ├── pushed.svg │ │ │ ├── python.svg │ │ │ ├── qq.svg │ │ │ ├── quinscape.svg │ │ │ ├── quora.svg │ │ │ ├── r-project.svg │ │ │ ├── ravelry.svg │ │ │ ├── react.svg │ │ │ ├── readme.svg │ │ │ ├── rebel.svg │ │ │ ├── red-river.svg │ │ │ ├── reddit-alien.svg │ │ │ ├── reddit-square.svg │ │ │ ├── reddit.svg │ │ │ ├── rendact.svg │ │ │ ├── renren.svg │ │ │ ├── replyd.svg │ │ │ ├── researchgate.svg │ │ │ ├── resolving.svg │ │ │ ├── rev.svg │ │ │ ├── rocketchat.svg │ │ │ ├── rockrms.svg │ │ │ ├── safari.svg │ │ │ ├── sass.svg │ │ │ ├── schlix.svg │ │ │ ├── scribd.svg │ │ │ ├── searchengin.svg │ │ │ ├── sellcast.svg │ │ │ ├── sellsy.svg │ │ │ ├── servicestack.svg │ │ │ ├── shirtsinbulk.svg │ │ │ ├── shopware.svg │ │ │ ├── simplybuilt.svg │ │ │ ├── sistrix.svg │ │ │ ├── sith.svg │ │ │ ├── skyatlas.svg │ │ │ ├── skype.svg │ │ │ ├── slack-hash.svg │ │ │ ├── slack.svg │ │ │ ├── slideshare.svg │ │ │ ├── snapchat-ghost.svg │ │ │ ├── snapchat-square.svg │ │ │ ├── snapchat.svg │ │ │ ├── soundcloud.svg │ │ │ ├── speakap.svg │ │ │ ├── spotify.svg │ │ │ ├── squarespace.svg │ │ │ ├── stack-exchange.svg │ │ │ ├── stack-overflow.svg │ │ │ ├── staylinked.svg │ │ │ ├── steam-square.svg │ │ │ ├── steam-symbol.svg │ │ │ ├── steam.svg │ │ │ ├── sticker-mule.svg │ │ │ ├── strava.svg │ │ │ ├── stripe-s.svg │ │ │ ├── stripe.svg │ │ │ ├── studiovinari.svg │ │ │ ├── stumbleupon-circle.svg │ │ │ ├── stumbleupon.svg │ │ │ ├── superpowers.svg │ │ │ ├── supple.svg │ │ │ ├── teamspeak.svg │ │ │ ├── telegram-plane.svg │ │ │ ├── telegram.svg │ │ │ ├── tencent-weibo.svg │ │ │ ├── the-red-yeti.svg │ │ │ ├── themeco.svg │ │ │ ├── themeisle.svg │ │ │ ├── trade-federation.svg │ │ │ ├── trello.svg │ │ │ ├── tripadvisor.svg │ │ │ ├── tumblr-square.svg │ │ │ ├── tumblr.svg │ │ │ ├── twitch.svg │ │ │ ├── twitter-square.svg │ │ │ ├── twitter.svg │ │ │ ├── typo3.svg │ │ │ ├── uber.svg │ │ │ ├── uikit.svg │ │ │ ├── uniregistry.svg │ │ │ ├── untappd.svg │ │ │ ├── usb.svg │ │ │ ├── ussunnah.svg │ │ │ ├── vaadin.svg │ │ │ ├── viacoin.svg │ │ │ ├── viadeo-square.svg │ │ │ ├── viadeo.svg │ │ │ ├── viber.svg │ │ │ ├── vimeo-square.svg │ │ │ ├── vimeo-v.svg │ │ │ ├── vimeo.svg │ │ │ ├── vine.svg │ │ │ ├── vk.svg │ │ │ ├── vnv.svg │ │ │ ├── vuejs.svg │ │ │ ├── weebly.svg │ │ │ ├── weibo.svg │ │ │ ├── weixin.svg │ │ │ ├── whatsapp-square.svg │ │ │ ├── whatsapp.svg │ │ │ ├── whmcs.svg │ │ │ ├── wikipedia-w.svg │ │ │ ├── windows.svg │ │ │ ├── wix.svg │ │ │ ├── wolf-pack-battalion.svg │ │ │ ├── wordpress-simple.svg │ │ │ ├── wordpress.svg │ │ │ ├── wpbeginner.svg │ │ │ ├── wpexplorer.svg │ │ │ ├── wpforms.svg │ │ │ ├── xbox.svg │ │ │ ├── xing-square.svg │ │ │ ├── xing.svg │ │ │ ├── y-combinator.svg │ │ │ ├── yahoo.svg │ │ │ ├── yandex-international.svg │ │ │ ├── yandex.svg │ │ │ ├── yelp.svg │ │ │ ├── yoast.svg │ │ │ ├── youtube-square.svg │ │ │ ├── youtube.svg │ │ │ └── zhihu.svg │ │ ├── regular │ │ │ ├── address-book.svg │ │ │ ├── address-card.svg │ │ │ ├── angry.svg │ │ │ ├── arrow-alt-circle-down.svg │ │ │ ├── arrow-alt-circle-left.svg │ │ │ ├── arrow-alt-circle-right.svg │ │ │ ├── arrow-alt-circle-up.svg │ │ │ ├── bell-slash.svg │ │ │ ├── bell.svg │ │ │ ├── bookmark.svg │ │ │ ├── building.svg │ │ │ ├── calendar-alt.svg │ │ │ ├── calendar-check.svg │ │ │ ├── calendar-minus.svg │ │ │ ├── calendar-plus.svg │ │ │ ├── calendar-times.svg │ │ │ ├── calendar.svg │ │ │ ├── caret-square-down.svg │ │ │ ├── caret-square-left.svg │ │ │ ├── caret-square-right.svg │ │ │ ├── caret-square-up.svg │ │ │ ├── chart-bar.svg │ │ │ ├── check-circle.svg │ │ │ ├── check-square.svg │ │ │ ├── circle.svg │ │ │ ├── clipboard.svg │ │ │ ├── clock.svg │ │ │ ├── clone.svg │ │ │ ├── closed-captioning.svg │ │ │ ├── comment-alt.svg │ │ │ ├── comment-dots.svg │ │ │ ├── comment.svg │ │ │ ├── comments.svg │ │ │ ├── compass.svg │ │ │ ├── copy.svg │ │ │ ├── copyright.svg │ │ │ ├── credit-card.svg │ │ │ ├── dizzy.svg │ │ │ ├── dot-circle.svg │ │ │ ├── edit.svg │ │ │ ├── envelope-open.svg │ │ │ ├── envelope.svg │ │ │ ├── eye-slash.svg │ │ │ ├── eye.svg │ │ │ ├── file-alt.svg │ │ │ ├── file-archive.svg │ │ │ ├── file-audio.svg │ │ │ ├── file-code.svg │ │ │ ├── file-excel.svg │ │ │ ├── file-image.svg │ │ │ ├── file-pdf.svg │ │ │ ├── file-powerpoint.svg │ │ │ ├── file-video.svg │ │ │ ├── file-word.svg │ │ │ ├── file.svg │ │ │ ├── flag.svg │ │ │ ├── flushed.svg │ │ │ ├── folder-open.svg │ │ │ ├── folder.svg │ │ │ ├── font-awesome-logo-full.svg │ │ │ ├── frown-open.svg │ │ │ ├── frown.svg │ │ │ ├── futbol.svg │ │ │ ├── gem.svg │ │ │ ├── grimace.svg │ │ │ ├── grin-alt.svg │ │ │ ├── grin-beam-sweat.svg │ │ │ ├── grin-beam.svg │ │ │ ├── grin-hearts.svg │ │ │ ├── grin-squint-tears.svg │ │ │ ├── grin-squint.svg │ │ │ ├── grin-stars.svg │ │ │ ├── grin-tears.svg │ │ │ ├── grin-tongue-squint.svg │ │ │ ├── grin-tongue-wink.svg │ │ │ ├── grin-tongue.svg │ │ │ ├── grin-wink.svg │ │ │ ├── grin.svg │ │ │ ├── hand-lizard.svg │ │ │ ├── hand-paper.svg │ │ │ ├── hand-peace.svg │ │ │ ├── hand-point-down.svg │ │ │ ├── hand-point-left.svg │ │ │ ├── hand-point-right.svg │ │ │ ├── hand-point-up.svg │ │ │ ├── hand-pointer.svg │ │ │ ├── hand-rock.svg │ │ │ ├── hand-scissors.svg │ │ │ ├── hand-spock.svg │ │ │ ├── handshake.svg │ │ │ ├── hdd.svg │ │ │ ├── heart.svg │ │ │ ├── hospital.svg │ │ │ ├── hourglass.svg │ │ │ ├── id-badge.svg │ │ │ ├── id-card.svg │ │ │ ├── image.svg │ │ │ ├── images.svg │ │ │ ├── keyboard.svg │ │ │ ├── kiss-beam.svg │ │ │ ├── kiss-wink-heart.svg │ │ │ ├── kiss.svg │ │ │ ├── laugh-beam.svg │ │ │ ├── laugh-squint.svg │ │ │ ├── laugh-wink.svg │ │ │ ├── laugh.svg │ │ │ ├── lemon.svg │ │ │ ├── life-ring.svg │ │ │ ├── lightbulb.svg │ │ │ ├── list-alt.svg │ │ │ ├── map.svg │ │ │ ├── meh-blank.svg │ │ │ ├── meh-rolling-eyes.svg │ │ │ ├── meh.svg │ │ │ ├── minus-square.svg │ │ │ ├── money-bill-alt.svg │ │ │ ├── moon.svg │ │ │ ├── newspaper.svg │ │ │ ├── object-group.svg │ │ │ ├── object-ungroup.svg │ │ │ ├── paper-plane.svg │ │ │ ├── pause-circle.svg │ │ │ ├── play-circle.svg │ │ │ ├── plus-square.svg │ │ │ ├── question-circle.svg │ │ │ ├── registered.svg │ │ │ ├── sad-cry.svg │ │ │ ├── sad-tear.svg │ │ │ ├── save.svg │ │ │ ├── share-square.svg │ │ │ ├── smile-beam.svg │ │ │ ├── smile-wink.svg │ │ │ ├── smile.svg │ │ │ ├── snowflake.svg │ │ │ ├── square.svg │ │ │ ├── star-half.svg │ │ │ ├── star.svg │ │ │ ├── sticky-note.svg │ │ │ ├── stop-circle.svg │ │ │ ├── sun.svg │ │ │ ├── surprise.svg │ │ │ ├── thumbs-down.svg │ │ │ ├── thumbs-up.svg │ │ │ ├── times-circle.svg │ │ │ ├── tired.svg │ │ │ ├── trash-alt.svg │ │ │ ├── user-circle.svg │ │ │ ├── user.svg │ │ │ ├── window-close.svg │ │ │ ├── window-maximize.svg │ │ │ ├── window-minimize.svg │ │ │ └── window-restore.svg │ │ └── solid │ │ │ ├── ad.svg │ │ │ ├── address-book.svg │ │ │ ├── address-card.svg │ │ │ ├── adjust.svg │ │ │ ├── air-freshener.svg │ │ │ ├── align-center.svg │ │ │ ├── align-justify.svg │ │ │ ├── align-left.svg │ │ │ ├── align-right.svg │ │ │ ├── allergies.svg │ │ │ ├── ambulance.svg │ │ │ ├── american-sign-language-interpreting.svg │ │ │ ├── anchor.svg │ │ │ ├── angle-double-down.svg │ │ │ ├── angle-double-left.svg │ │ │ ├── angle-double-right.svg │ │ │ ├── angle-double-up.svg │ │ │ ├── angle-down.svg │ │ │ ├── angle-left.svg │ │ │ ├── angle-right.svg │ │ │ ├── angle-up.svg │ │ │ ├── angry.svg │ │ │ ├── ankh.svg │ │ │ ├── apple-alt.svg │ │ │ ├── archive.svg │ │ │ ├── archway.svg │ │ │ ├── arrow-alt-circle-down.svg │ │ │ ├── arrow-alt-circle-left.svg │ │ │ ├── arrow-alt-circle-right.svg │ │ │ ├── arrow-alt-circle-up.svg │ │ │ ├── arrow-circle-down.svg │ │ │ ├── arrow-circle-left.svg │ │ │ ├── arrow-circle-right.svg │ │ │ ├── arrow-circle-up.svg │ │ │ ├── arrow-down.svg │ │ │ ├── arrow-left.svg │ │ │ ├── arrow-right.svg │ │ │ ├── arrow-up.svg │ │ │ ├── arrows-alt-h.svg │ │ │ ├── arrows-alt-v.svg │ │ │ ├── arrows-alt.svg │ │ │ ├── assistive-listening-systems.svg │ │ │ ├── asterisk.svg │ │ │ ├── at.svg │ │ │ ├── atlas.svg │ │ │ ├── atom.svg │ │ │ ├── audio-description.svg │ │ │ ├── award.svg │ │ │ ├── backspace.svg │ │ │ ├── backward.svg │ │ │ ├── balance-scale.svg │ │ │ ├── ban.svg │ │ │ ├── band-aid.svg │ │ │ ├── barcode.svg │ │ │ ├── bars.svg │ │ │ ├── baseball-ball.svg │ │ │ ├── basketball-ball.svg │ │ │ ├── bath.svg │ │ │ ├── battery-empty.svg │ │ │ ├── battery-full.svg │ │ │ ├── battery-half.svg │ │ │ ├── battery-quarter.svg │ │ │ ├── battery-three-quarters.svg │ │ │ ├── bed.svg │ │ │ ├── beer.svg │ │ │ ├── bell-slash.svg │ │ │ ├── bell.svg │ │ │ ├── bezier-curve.svg │ │ │ ├── bible.svg │ │ │ ├── bicycle.svg │ │ │ ├── binoculars.svg │ │ │ ├── birthday-cake.svg │ │ │ ├── blender.svg │ │ │ ├── blind.svg │ │ │ ├── bold.svg │ │ │ ├── bolt.svg │ │ │ ├── bomb.svg │ │ │ ├── bone.svg │ │ │ ├── bong.svg │ │ │ ├── book-open.svg │ │ │ ├── book-reader.svg │ │ │ ├── book.svg │ │ │ ├── bookmark.svg │ │ │ ├── bowling-ball.svg │ │ │ ├── box-open.svg │ │ │ ├── box.svg │ │ │ ├── boxes.svg │ │ │ ├── braille.svg │ │ │ ├── brain.svg │ │ │ ├── briefcase-medical.svg │ │ │ ├── briefcase.svg │ │ │ ├── broadcast-tower.svg │ │ │ ├── broom.svg │ │ │ ├── brush.svg │ │ │ ├── bug.svg │ │ │ ├── building.svg │ │ │ ├── bullhorn.svg │ │ │ ├── bullseye.svg │ │ │ ├── burn.svg │ │ │ ├── bus-alt.svg │ │ │ ├── bus.svg │ │ │ ├── business-time.svg │ │ │ ├── calculator.svg │ │ │ ├── calendar-alt.svg │ │ │ ├── calendar-check.svg │ │ │ ├── calendar-minus.svg │ │ │ ├── calendar-plus.svg │ │ │ ├── calendar-times.svg │ │ │ ├── calendar.svg │ │ │ ├── camera-retro.svg │ │ │ ├── camera.svg │ │ │ ├── cannabis.svg │ │ │ ├── capsules.svg │ │ │ ├── car-alt.svg │ │ │ ├── car-battery.svg │ │ │ ├── car-crash.svg │ │ │ ├── car-side.svg │ │ │ ├── car.svg │ │ │ ├── caret-down.svg │ │ │ ├── caret-left.svg │ │ │ ├── caret-right.svg │ │ │ ├── caret-square-down.svg │ │ │ ├── caret-square-left.svg │ │ │ ├── caret-square-right.svg │ │ │ ├── caret-square-up.svg │ │ │ ├── caret-up.svg │ │ │ ├── cart-arrow-down.svg │ │ │ ├── cart-plus.svg │ │ │ ├── certificate.svg │ │ │ ├── chalkboard-teacher.svg │ │ │ ├── chalkboard.svg │ │ │ ├── charging-station.svg │ │ │ ├── chart-area.svg │ │ │ ├── chart-bar.svg │ │ │ ├── chart-line.svg │ │ │ ├── chart-pie.svg │ │ │ ├── check-circle.svg │ │ │ ├── check-double.svg │ │ │ ├── check-square.svg │ │ │ ├── check.svg │ │ │ ├── chess-bishop.svg │ │ │ ├── chess-board.svg │ │ │ ├── chess-king.svg │ │ │ ├── chess-knight.svg │ │ │ ├── chess-pawn.svg │ │ │ ├── chess-queen.svg │ │ │ ├── chess-rook.svg │ │ │ ├── chess.svg │ │ │ ├── chevron-circle-down.svg │ │ │ ├── chevron-circle-left.svg │ │ │ ├── chevron-circle-right.svg │ │ │ ├── chevron-circle-up.svg │ │ │ ├── chevron-down.svg │ │ │ ├── chevron-left.svg │ │ │ ├── chevron-right.svg │ │ │ ├── chevron-up.svg │ │ │ ├── child.svg │ │ │ ├── church.svg │ │ │ ├── circle-notch.svg │ │ │ ├── circle.svg │ │ │ ├── city.svg │ │ │ ├── clipboard-check.svg │ │ │ ├── clipboard-list.svg │ │ │ ├── clipboard.svg │ │ │ ├── clock.svg │ │ │ ├── clone.svg │ │ │ ├── closed-captioning.svg │ │ │ ├── cloud-download-alt.svg │ │ │ ├── cloud-upload-alt.svg │ │ │ ├── cloud.svg │ │ │ ├── cocktail.svg │ │ │ ├── code-branch.svg │ │ │ ├── code.svg │ │ │ ├── coffee.svg │ │ │ ├── cog.svg │ │ │ ├── cogs.svg │ │ │ ├── coins.svg │ │ │ ├── columns.svg │ │ │ ├── comment-alt.svg │ │ │ ├── comment-dollar.svg │ │ │ ├── comment-dots.svg │ │ │ ├── comment-slash.svg │ │ │ ├── comment.svg │ │ │ ├── comments-dollar.svg │ │ │ ├── comments.svg │ │ │ ├── compact-disc.svg │ │ │ ├── compass.svg │ │ │ ├── compress.svg │ │ │ ├── concierge-bell.svg │ │ │ ├── cookie-bite.svg │ │ │ ├── cookie.svg │ │ │ ├── copy.svg │ │ │ ├── copyright.svg │ │ │ ├── couch.svg │ │ │ ├── credit-card.svg │ │ │ ├── crop-alt.svg │ │ │ ├── crop.svg │ │ │ ├── cross.svg │ │ │ ├── crosshairs.svg │ │ │ ├── crow.svg │ │ │ ├── crown.svg │ │ │ ├── cube.svg │ │ │ ├── cubes.svg │ │ │ ├── cut.svg │ │ │ ├── database.svg │ │ │ ├── deaf.svg │ │ │ ├── desktop.svg │ │ │ ├── dharmachakra.svg │ │ │ ├── diagnoses.svg │ │ │ ├── dice-five.svg │ │ │ ├── dice-four.svg │ │ │ ├── dice-one.svg │ │ │ ├── dice-six.svg │ │ │ ├── dice-three.svg │ │ │ ├── dice-two.svg │ │ │ ├── dice.svg │ │ │ ├── digital-tachograph.svg │ │ │ ├── directions.svg │ │ │ ├── divide.svg │ │ │ ├── dizzy.svg │ │ │ ├── dna.svg │ │ │ ├── dollar-sign.svg │ │ │ ├── dolly-flatbed.svg │ │ │ ├── dolly.svg │ │ │ ├── donate.svg │ │ │ ├── door-closed.svg │ │ │ ├── door-open.svg │ │ │ ├── dot-circle.svg │ │ │ ├── dove.svg │ │ │ ├── download.svg │ │ │ ├── drafting-compass.svg │ │ │ ├── draw-polygon.svg │ │ │ ├── drum-steelpan.svg │ │ │ ├── drum.svg │ │ │ ├── dumbbell.svg │ │ │ ├── edit.svg │ │ │ ├── eject.svg │ │ │ ├── ellipsis-h.svg │ │ │ ├── ellipsis-v.svg │ │ │ ├── envelope-open-text.svg │ │ │ ├── envelope-open.svg │ │ │ ├── envelope-square.svg │ │ │ ├── envelope.svg │ │ │ ├── equals.svg │ │ │ ├── eraser.svg │ │ │ ├── euro-sign.svg │ │ │ ├── exchange-alt.svg │ │ │ ├── exclamation-circle.svg │ │ │ ├── exclamation-triangle.svg │ │ │ ├── exclamation.svg │ │ │ ├── expand-arrows-alt.svg │ │ │ ├── expand.svg │ │ │ ├── external-link-alt.svg │ │ │ ├── external-link-square-alt.svg │ │ │ ├── eye-dropper.svg │ │ │ ├── eye-slash.svg │ │ │ ├── eye.svg │ │ │ ├── fast-backward.svg │ │ │ ├── fast-forward.svg │ │ │ ├── fax.svg │ │ │ ├── feather-alt.svg │ │ │ ├── feather.svg │ │ │ ├── female.svg │ │ │ ├── fighter-jet.svg │ │ │ ├── file-alt.svg │ │ │ ├── file-archive.svg │ │ │ ├── file-audio.svg │ │ │ ├── file-code.svg │ │ │ ├── file-contract.svg │ │ │ ├── file-download.svg │ │ │ ├── file-excel.svg │ │ │ ├── file-export.svg │ │ │ ├── file-image.svg │ │ │ ├── file-import.svg │ │ │ ├── file-invoice-dollar.svg │ │ │ ├── file-invoice.svg │ │ │ ├── file-medical-alt.svg │ │ │ ├── file-medical.svg │ │ │ ├── file-pdf.svg │ │ │ ├── file-powerpoint.svg │ │ │ ├── file-prescription.svg │ │ │ ├── file-signature.svg │ │ │ ├── file-upload.svg │ │ │ ├── file-video.svg │ │ │ ├── file-word.svg │ │ │ ├── file.svg │ │ │ ├── fill-drip.svg │ │ │ ├── fill.svg │ │ │ ├── film.svg │ │ │ ├── filter.svg │ │ │ ├── fingerprint.svg │ │ │ ├── fire-extinguisher.svg │ │ │ ├── fire.svg │ │ │ ├── first-aid.svg │ │ │ ├── fish.svg │ │ │ ├── flag-checkered.svg │ │ │ ├── flag.svg │ │ │ ├── flask.svg │ │ │ ├── flushed.svg │ │ │ ├── folder-minus.svg │ │ │ ├── folder-open.svg │ │ │ ├── folder-plus.svg │ │ │ ├── folder.svg │ │ │ ├── font-awesome-logo-full.svg │ │ │ ├── font.svg │ │ │ ├── football-ball.svg │ │ │ ├── forward.svg │ │ │ ├── frog.svg │ │ │ ├── frown-open.svg │ │ │ ├── frown.svg │ │ │ ├── funnel-dollar.svg │ │ │ ├── futbol.svg │ │ │ ├── gamepad.svg │ │ │ ├── gas-pump.svg │ │ │ ├── gavel.svg │ │ │ ├── gem.svg │ │ │ ├── genderless.svg │ │ │ ├── gift.svg │ │ │ ├── glass-martini-alt.svg │ │ │ ├── glass-martini.svg │ │ │ ├── glasses.svg │ │ │ ├── globe-africa.svg │ │ │ ├── globe-americas.svg │ │ │ ├── globe-asia.svg │ │ │ ├── globe.svg │ │ │ ├── golf-ball.svg │ │ │ ├── gopuram.svg │ │ │ ├── graduation-cap.svg │ │ │ ├── greater-than-equal.svg │ │ │ ├── greater-than.svg │ │ │ ├── grimace.svg │ │ │ ├── grin-alt.svg │ │ │ ├── grin-beam-sweat.svg │ │ │ ├── grin-beam.svg │ │ │ ├── grin-hearts.svg │ │ │ ├── grin-squint-tears.svg │ │ │ ├── grin-squint.svg │ │ │ ├── grin-stars.svg │ │ │ ├── grin-tears.svg │ │ │ ├── grin-tongue-squint.svg │ │ │ ├── grin-tongue-wink.svg │ │ │ ├── grin-tongue.svg │ │ │ ├── grin-wink.svg │ │ │ ├── grin.svg │ │ │ ├── grip-horizontal.svg │ │ │ ├── grip-vertical.svg │ │ │ ├── h-square.svg │ │ │ ├── hamsa.svg │ │ │ ├── hand-holding-heart.svg │ │ │ ├── hand-holding-usd.svg │ │ │ ├── hand-holding.svg │ │ │ ├── hand-lizard.svg │ │ │ ├── hand-paper.svg │ │ │ ├── hand-peace.svg │ │ │ ├── hand-point-down.svg │ │ │ ├── hand-point-left.svg │ │ │ ├── hand-point-right.svg │ │ │ ├── hand-point-up.svg │ │ │ ├── hand-pointer.svg │ │ │ ├── hand-rock.svg │ │ │ ├── hand-scissors.svg │ │ │ ├── hand-spock.svg │ │ │ ├── hands-helping.svg │ │ │ ├── hands.svg │ │ │ ├── handshake.svg │ │ │ ├── hashtag.svg │ │ │ ├── haykal.svg │ │ │ ├── hdd.svg │ │ │ ├── heading.svg │ │ │ ├── headphones-alt.svg │ │ │ ├── headphones.svg │ │ │ ├── headset.svg │ │ │ ├── heart.svg │ │ │ ├── heartbeat.svg │ │ │ ├── helicopter.svg │ │ │ ├── highlighter.svg │ │ │ ├── history.svg │ │ │ ├── hockey-puck.svg │ │ │ ├── home.svg │ │ │ ├── hospital-alt.svg │ │ │ ├── hospital-symbol.svg │ │ │ ├── hospital.svg │ │ │ ├── hot-tub.svg │ │ │ ├── hotel.svg │ │ │ ├── hourglass-end.svg │ │ │ ├── hourglass-half.svg │ │ │ ├── hourglass-start.svg │ │ │ ├── hourglass.svg │ │ │ ├── i-cursor.svg │ │ │ ├── id-badge.svg │ │ │ ├── id-card-alt.svg │ │ │ ├── id-card.svg │ │ │ ├── image.svg │ │ │ ├── images.svg │ │ │ ├── inbox.svg │ │ │ ├── indent.svg │ │ │ ├── industry.svg │ │ │ ├── infinity.svg │ │ │ ├── info-circle.svg │ │ │ ├── info.svg │ │ │ ├── italic.svg │ │ │ ├── jedi.svg │ │ │ ├── joint.svg │ │ │ ├── journal-whills.svg │ │ │ ├── kaaba.svg │ │ │ ├── key.svg │ │ │ ├── keyboard.svg │ │ │ ├── khanda.svg │ │ │ ├── kiss-beam.svg │ │ │ ├── kiss-wink-heart.svg │ │ │ ├── kiss.svg │ │ │ ├── kiwi-bird.svg │ │ │ ├── landmark.svg │ │ │ ├── language.svg │ │ │ ├── laptop-code.svg │ │ │ ├── laptop.svg │ │ │ ├── laugh-beam.svg │ │ │ ├── laugh-squint.svg │ │ │ ├── laugh-wink.svg │ │ │ ├── laugh.svg │ │ │ ├── layer-group.svg │ │ │ ├── leaf.svg │ │ │ ├── lemon.svg │ │ │ ├── less-than-equal.svg │ │ │ ├── less-than.svg │ │ │ ├── level-down-alt.svg │ │ │ ├── level-up-alt.svg │ │ │ ├── life-ring.svg │ │ │ ├── lightbulb.svg │ │ │ ├── link.svg │ │ │ ├── lira-sign.svg │ │ │ ├── list-alt.svg │ │ │ ├── list-ol.svg │ │ │ ├── list-ul.svg │ │ │ ├── list.svg │ │ │ ├── location-arrow.svg │ │ │ ├── lock-open.svg │ │ │ ├── lock.svg │ │ │ ├── long-arrow-alt-down.svg │ │ │ ├── long-arrow-alt-left.svg │ │ │ ├── long-arrow-alt-right.svg │ │ │ ├── long-arrow-alt-up.svg │ │ │ ├── low-vision.svg │ │ │ ├── luggage-cart.svg │ │ │ ├── magic.svg │ │ │ ├── magnet.svg │ │ │ ├── mail-bulk.svg │ │ │ ├── male.svg │ │ │ ├── map-marked-alt.svg │ │ │ ├── map-marked.svg │ │ │ ├── map-marker-alt.svg │ │ │ ├── map-marker.svg │ │ │ ├── map-pin.svg │ │ │ ├── map-signs.svg │ │ │ ├── map.svg │ │ │ ├── marker.svg │ │ │ ├── mars-double.svg │ │ │ ├── mars-stroke-h.svg │ │ │ ├── mars-stroke-v.svg │ │ │ ├── mars-stroke.svg │ │ │ ├── mars.svg │ │ │ ├── medal.svg │ │ │ ├── medkit.svg │ │ │ ├── meh-blank.svg │ │ │ ├── meh-rolling-eyes.svg │ │ │ ├── meh.svg │ │ │ ├── memory.svg │ │ │ ├── menorah.svg │ │ │ ├── mercury.svg │ │ │ ├── microchip.svg │ │ │ ├── microphone-alt-slash.svg │ │ │ ├── microphone-alt.svg │ │ │ ├── microphone-slash.svg │ │ │ ├── microphone.svg │ │ │ ├── microscope.svg │ │ │ ├── minus-circle.svg │ │ │ ├── minus-square.svg │ │ │ ├── minus.svg │ │ │ ├── mobile-alt.svg │ │ │ ├── mobile.svg │ │ │ ├── money-bill-alt.svg │ │ │ ├── money-bill-wave-alt.svg │ │ │ ├── money-bill-wave.svg │ │ │ ├── money-bill.svg │ │ │ ├── money-check-alt.svg │ │ │ ├── money-check.svg │ │ │ ├── monument.svg │ │ │ ├── moon.svg │ │ │ ├── mortar-pestle.svg │ │ │ ├── mosque.svg │ │ │ ├── motorcycle.svg │ │ │ ├── mouse-pointer.svg │ │ │ ├── music.svg │ │ │ ├── neuter.svg │ │ │ ├── newspaper.svg │ │ │ ├── not-equal.svg │ │ │ ├── notes-medical.svg │ │ │ ├── object-group.svg │ │ │ ├── object-ungroup.svg │ │ │ ├── oil-can.svg │ │ │ ├── om.svg │ │ │ ├── outdent.svg │ │ │ ├── paint-brush.svg │ │ │ ├── paint-roller.svg │ │ │ ├── palette.svg │ │ │ ├── pallet.svg │ │ │ ├── paper-plane.svg │ │ │ ├── paperclip.svg │ │ │ ├── parachute-box.svg │ │ │ ├── paragraph.svg │ │ │ ├── parking.svg │ │ │ ├── passport.svg │ │ │ ├── pastafarianism.svg │ │ │ ├── paste.svg │ │ │ ├── pause-circle.svg │ │ │ ├── pause.svg │ │ │ ├── paw.svg │ │ │ ├── peace.svg │ │ │ ├── pen-alt.svg │ │ │ ├── pen-fancy.svg │ │ │ ├── pen-nib.svg │ │ │ ├── pen-square.svg │ │ │ ├── pen.svg │ │ │ ├── pencil-alt.svg │ │ │ ├── pencil-ruler.svg │ │ │ ├── people-carry.svg │ │ │ ├── percent.svg │ │ │ ├── percentage.svg │ │ │ ├── phone-slash.svg │ │ │ ├── phone-square.svg │ │ │ ├── phone-volume.svg │ │ │ ├── phone.svg │ │ │ ├── piggy-bank.svg │ │ │ ├── pills.svg │ │ │ ├── place-of-worship.svg │ │ │ ├── plane-arrival.svg │ │ │ ├── plane-departure.svg │ │ │ ├── plane.svg │ │ │ ├── play-circle.svg │ │ │ ├── play.svg │ │ │ ├── plug.svg │ │ │ ├── plus-circle.svg │ │ │ ├── plus-square.svg │ │ │ ├── plus.svg │ │ │ ├── podcast.svg │ │ │ ├── poll-h.svg │ │ │ ├── poll.svg │ │ │ ├── poo.svg │ │ │ ├── poop.svg │ │ │ ├── portrait.svg │ │ │ ├── pound-sign.svg │ │ │ ├── power-off.svg │ │ │ ├── pray.svg │ │ │ ├── praying-hands.svg │ │ │ ├── prescription-bottle-alt.svg │ │ │ ├── prescription-bottle.svg │ │ │ ├── prescription.svg │ │ │ ├── print.svg │ │ │ ├── procedures.svg │ │ │ ├── project-diagram.svg │ │ │ ├── puzzle-piece.svg │ │ │ ├── qrcode.svg │ │ │ ├── question-circle.svg │ │ │ ├── question.svg │ │ │ ├── quidditch.svg │ │ │ ├── quote-left.svg │ │ │ ├── quote-right.svg │ │ │ ├── quran.svg │ │ │ ├── random.svg │ │ │ ├── receipt.svg │ │ │ ├── recycle.svg │ │ │ ├── redo-alt.svg │ │ │ ├── redo.svg │ │ │ ├── registered.svg │ │ │ ├── reply-all.svg │ │ │ ├── reply.svg │ │ │ ├── retweet.svg │ │ │ ├── ribbon.svg │ │ │ ├── road.svg │ │ │ ├── robot.svg │ │ │ ├── rocket.svg │ │ │ ├── route.svg │ │ │ ├── rss-square.svg │ │ │ ├── rss.svg │ │ │ ├── ruble-sign.svg │ │ │ ├── ruler-combined.svg │ │ │ ├── ruler-horizontal.svg │ │ │ ├── ruler-vertical.svg │ │ │ ├── ruler.svg │ │ │ ├── rupee-sign.svg │ │ │ ├── sad-cry.svg │ │ │ ├── sad-tear.svg │ │ │ ├── save.svg │ │ │ ├── school.svg │ │ │ ├── screwdriver.svg │ │ │ ├── search-dollar.svg │ │ │ ├── search-location.svg │ │ │ ├── search-minus.svg │ │ │ ├── search-plus.svg │ │ │ ├── search.svg │ │ │ ├── seedling.svg │ │ │ ├── server.svg │ │ │ ├── shapes.svg │ │ │ ├── share-alt-square.svg │ │ │ ├── share-alt.svg │ │ │ ├── share-square.svg │ │ │ ├── share.svg │ │ │ ├── shekel-sign.svg │ │ │ ├── shield-alt.svg │ │ │ ├── ship.svg │ │ │ ├── shipping-fast.svg │ │ │ ├── shoe-prints.svg │ │ │ ├── shopping-bag.svg │ │ │ ├── shopping-basket.svg │ │ │ ├── shopping-cart.svg │ │ │ ├── shower.svg │ │ │ ├── shuttle-van.svg │ │ │ ├── sign-in-alt.svg │ │ │ ├── sign-language.svg │ │ │ ├── sign-out-alt.svg │ │ │ ├── sign.svg │ │ │ ├── signal.svg │ │ │ ├── signature.svg │ │ │ ├── sitemap.svg │ │ │ ├── skull.svg │ │ │ ├── sliders-h.svg │ │ │ ├── smile-beam.svg │ │ │ ├── smile-wink.svg │ │ │ ├── smile.svg │ │ │ ├── smoking-ban.svg │ │ │ ├── smoking.svg │ │ │ ├── snowflake.svg │ │ │ ├── socks.svg │ │ │ ├── solar-panel.svg │ │ │ ├── sort-alpha-down.svg │ │ │ ├── sort-alpha-up.svg │ │ │ ├── sort-amount-down.svg │ │ │ ├── sort-amount-up.svg │ │ │ ├── sort-down.svg │ │ │ ├── sort-numeric-down.svg │ │ │ ├── sort-numeric-up.svg │ │ │ ├── sort-up.svg │ │ │ ├── sort.svg │ │ │ ├── spa.svg │ │ │ ├── space-shuttle.svg │ │ │ ├── spinner.svg │ │ │ ├── splotch.svg │ │ │ ├── spray-can.svg │ │ │ ├── square-full.svg │ │ │ ├── square-root-alt.svg │ │ │ ├── square.svg │ │ │ ├── stamp.svg │ │ │ ├── star-and-crescent.svg │ │ │ ├── star-half-alt.svg │ │ │ ├── star-half.svg │ │ │ ├── star-of-david.svg │ │ │ ├── star-of-life.svg │ │ │ ├── star.svg │ │ │ ├── step-backward.svg │ │ │ ├── step-forward.svg │ │ │ ├── stethoscope.svg │ │ │ ├── sticky-note.svg │ │ │ ├── stop-circle.svg │ │ │ ├── stop.svg │ │ │ ├── stopwatch.svg │ │ │ ├── store-alt.svg │ │ │ ├── store.svg │ │ │ ├── stream.svg │ │ │ ├── street-view.svg │ │ │ ├── strikethrough.svg │ │ │ ├── stroopwafel.svg │ │ │ ├── subscript.svg │ │ │ ├── subway.svg │ │ │ ├── suitcase-rolling.svg │ │ │ ├── suitcase.svg │ │ │ ├── sun.svg │ │ │ ├── superscript.svg │ │ │ ├── surprise.svg │ │ │ ├── swatchbook.svg │ │ │ ├── swimmer.svg │ │ │ ├── swimming-pool.svg │ │ │ ├── synagogue.svg │ │ │ ├── sync-alt.svg │ │ │ ├── sync.svg │ │ │ ├── syringe.svg │ │ │ ├── table-tennis.svg │ │ │ ├── table.svg │ │ │ ├── tablet-alt.svg │ │ │ ├── tablet.svg │ │ │ ├── tablets.svg │ │ │ ├── tachometer-alt.svg │ │ │ ├── tag.svg │ │ │ ├── tags.svg │ │ │ ├── tape.svg │ │ │ ├── tasks.svg │ │ │ ├── taxi.svg │ │ │ ├── teeth-open.svg │ │ │ ├── teeth.svg │ │ │ ├── terminal.svg │ │ │ ├── text-height.svg │ │ │ ├── text-width.svg │ │ │ ├── th-large.svg │ │ │ ├── th-list.svg │ │ │ ├── th.svg │ │ │ ├── theater-masks.svg │ │ │ ├── thermometer-empty.svg │ │ │ ├── thermometer-full.svg │ │ │ ├── thermometer-half.svg │ │ │ ├── thermometer-quarter.svg │ │ │ ├── thermometer-three-quarters.svg │ │ │ ├── thermometer.svg │ │ │ ├── thumbs-down.svg │ │ │ ├── thumbs-up.svg │ │ │ ├── thumbtack.svg │ │ │ ├── ticket-alt.svg │ │ │ ├── times-circle.svg │ │ │ ├── times.svg │ │ │ ├── tint-slash.svg │ │ │ ├── tint.svg │ │ │ ├── tired.svg │ │ │ ├── toggle-off.svg │ │ │ ├── toggle-on.svg │ │ │ ├── toolbox.svg │ │ │ ├── tooth.svg │ │ │ ├── torah.svg │ │ │ ├── torii-gate.svg │ │ │ ├── trademark.svg │ │ │ ├── traffic-light.svg │ │ │ ├── train.svg │ │ │ ├── transgender-alt.svg │ │ │ ├── transgender.svg │ │ │ ├── trash-alt.svg │ │ │ ├── trash.svg │ │ │ ├── tree.svg │ │ │ ├── trophy.svg │ │ │ ├── truck-loading.svg │ │ │ ├── truck-monster.svg │ │ │ ├── truck-moving.svg │ │ │ ├── truck-pickup.svg │ │ │ ├── truck.svg │ │ │ ├── tshirt.svg │ │ │ ├── tty.svg │ │ │ ├── tv.svg │ │ │ ├── umbrella-beach.svg │ │ │ ├── umbrella.svg │ │ │ ├── underline.svg │ │ │ ├── undo-alt.svg │ │ │ ├── undo.svg │ │ │ ├── universal-access.svg │ │ │ ├── university.svg │ │ │ ├── unlink.svg │ │ │ ├── unlock-alt.svg │ │ │ ├── unlock.svg │ │ │ ├── upload.svg │ │ │ ├── user-alt-slash.svg │ │ │ ├── user-alt.svg │ │ │ ├── user-astronaut.svg │ │ │ ├── user-check.svg │ │ │ ├── user-circle.svg │ │ │ ├── user-clock.svg │ │ │ ├── user-cog.svg │ │ │ ├── user-edit.svg │ │ │ ├── user-friends.svg │ │ │ ├── user-graduate.svg │ │ │ ├── user-lock.svg │ │ │ ├── user-md.svg │ │ │ ├── user-minus.svg │ │ │ ├── user-ninja.svg │ │ │ ├── user-plus.svg │ │ │ ├── user-secret.svg │ │ │ ├── user-shield.svg │ │ │ ├── user-slash.svg │ │ │ ├── user-tag.svg │ │ │ ├── user-tie.svg │ │ │ ├── user-times.svg │ │ │ ├── user.svg │ │ │ ├── users-cog.svg │ │ │ ├── users.svg │ │ │ ├── utensil-spoon.svg │ │ │ ├── utensils.svg │ │ │ ├── vector-square.svg │ │ │ ├── venus-double.svg │ │ │ ├── venus-mars.svg │ │ │ ├── venus.svg │ │ │ ├── vial.svg │ │ │ ├── vials.svg │ │ │ ├── video-slash.svg │ │ │ ├── video.svg │ │ │ ├── vihara.svg │ │ │ ├── volleyball-ball.svg │ │ │ ├── volume-down.svg │ │ │ ├── volume-off.svg │ │ │ ├── volume-up.svg │ │ │ ├── walking.svg │ │ │ ├── wallet.svg │ │ │ ├── warehouse.svg │ │ │ ├── weight-hanging.svg │ │ │ ├── weight.svg │ │ │ ├── wheelchair.svg │ │ │ ├── wifi.svg │ │ │ ├── window-close.svg │ │ │ ├── window-maximize.svg │ │ │ ├── window-minimize.svg │ │ │ ├── window-restore.svg │ │ │ ├── wine-glass-alt.svg │ │ │ ├── wine-glass.svg │ │ │ ├── won-sign.svg │ │ │ ├── wrench.svg │ │ │ ├── x-ray.svg │ │ │ ├── yen-sign.svg │ │ │ └── yin-yang.svg │ └── webfonts │ │ ├── fa-brands-400.eot │ │ ├── fa-brands-400.svg │ │ ├── fa-brands-400.ttf │ │ ├── fa-brands-400.woff │ │ ├── fa-brands-400.woff2 │ │ ├── fa-regular-400.eot │ │ ├── fa-regular-400.svg │ │ ├── fa-regular-400.ttf │ │ ├── fa-regular-400.woff │ │ ├── fa-regular-400.woff2 │ │ ├── fa-solid-900.eot │ │ ├── fa-solid-900.svg │ │ ├── fa-solid-900.ttf │ │ ├── fa-solid-900.woff │ │ └── fa-solid-900.woff2 │ └── jquery │ ├── jquery.js │ ├── jquery.min.js │ ├── jquery.min.map │ ├── jquery.slim.js │ ├── jquery.slim.min.js │ └── jquery.slim.min.map ├── fetchOntology.js ├── gather.js ├── index.js ├── lib ├── AbstractValidator.js ├── EyeHandler.js ├── Logger.js ├── OntologyVault.js ├── TestHelper.js ├── TtlFetcher.js ├── ValidationFactory.js └── Validator.js ├── log └── .gitkeep ├── n3unit.js ├── package-lock.json ├── package.json ├── profile.js ├── profiles └── owl.n3 ├── public └── stylesheets │ └── style.css ├── reports └── validatrr-rdfcv-earl.ttl ├── resources ├── Mapping_en_Infobox_artist.ttl ├── ontologies │ └── prefix.json ├── owl2ttl.py ├── rml │ ├── all.query.n3 │ ├── extraRules.n3 │ ├── foaf.owl │ ├── input.ttl │ ├── logCodes.ttl │ ├── rule.n3 │ ├── rules │ │ ├── 1_no-rdf-type │ │ │ ├── README.MD │ │ │ ├── input-1.ttl │ │ │ ├── input-2.ttl │ │ │ ├── input-3.ttl │ │ │ ├── input-4.ttl │ │ │ ├── input-5.ttl │ │ │ ├── output-1.ttl │ │ │ ├── output-2.ttl │ │ │ ├── output-3.ttl │ │ │ ├── output-4.ttl │ │ │ └── output-5.ttl │ │ ├── 1b_disjoint │ │ │ ├── README.MD │ │ │ ├── input-1.ttl │ │ │ └── output-1.ttl │ │ ├── 2_incorrect-domain │ │ │ ├── README.MD │ │ │ ├── correct-1.ttl │ │ │ ├── input-1.ttl │ │ │ ├── input-2.ttl │ │ │ ├── output-1.ttl │ │ │ └── output-2.ttl │ │ ├── 3_missing dataType │ │ │ ├── README.MD │ │ │ ├── correct-1.ttl │ │ │ ├── correct-2.ttl │ │ │ ├── correct-3.ttl │ │ │ ├── input-1.ttl │ │ │ ├── input-2.ttl │ │ │ ├── input-3.ttl │ │ │ ├── input-4.ttl │ │ │ ├── input-5.ttl │ │ │ ├── output-1.ttl │ │ │ ├── output-2.ttl │ │ │ ├── output-3.ttl │ │ │ ├── output-4.ttl │ │ │ └── output-5.ttl │ │ ├── 3a_incorrect-datatype │ │ │ ├── README.MD │ │ │ ├── correct-1.ttl │ │ │ ├── input-1.ttl │ │ │ ├── input-2.ttl │ │ │ ├── input-3.ttl │ │ │ ├── input-4.ttl │ │ │ ├── output-1.ttl │ │ │ ├── output-2.ttl │ │ │ ├── output-3.ttl │ │ │ └── output-4.ttl │ │ ├── 3b_correct-data-type-incompatible-data │ │ │ ├── README.MD │ │ │ ├── correct-1.ttl │ │ │ ├── input-1.ttl │ │ │ └── output-1.ttl │ │ ├── 4_literal-instead-of-object │ │ │ ├── README.MD │ │ │ ├── correct-1.ttl │ │ │ ├── input-1.ttl │ │ │ └── output-1.ttl │ │ ├── 5_wrong-range │ │ │ ├── README.MD │ │ │ ├── correct-1.ttl │ │ │ ├── input-1.ttl │ │ │ ├── input-2.ttl │ │ │ ├── input-3.ttl │ │ │ ├── output-1.ttl │ │ │ ├── output-2.ttl │ │ │ └── output-3.ttl │ │ ├── 6_generated-subject-should-have-class │ │ │ ├── README.MD │ │ │ ├── correct-1.ttl │ │ │ ├── input-1.ttl │ │ │ └── output-1.ttl │ │ ├── 7_rdf-langstring │ │ │ ├── README.MD │ │ │ ├── correct-1.ttl │ │ │ ├── correct-2.ttl │ │ │ ├── correct-3.ttl │ │ │ ├── input-1.ttl │ │ │ ├── input-2.ttl │ │ │ ├── input-3.ttl │ │ │ ├── output-1.ttl │ │ │ ├── output-2.ttl │ │ │ └── output-3.ttl │ │ ├── 8_predicate-as-object │ │ │ ├── README.MD │ │ │ ├── correct-1.ttl │ │ │ ├── correct-2.ttl │ │ │ ├── correct-3.ttl │ │ │ ├── correct-4.ttl │ │ │ ├── input-1.ttl │ │ │ ├── input-2.ttl │ │ │ ├── input-3.ttl │ │ │ ├── input-4.ttl │ │ │ ├── output-1.ttl │ │ │ ├── output-2.ttl │ │ │ ├── output-3.ttl │ │ │ └── output-4.ttl │ │ └── 9_deprecated-property │ │ │ ├── README.MD │ │ │ ├── input-1.ttl │ │ │ ├── input-2.ttl │ │ │ ├── output-1.ttl │ │ │ └── output-2.ttl │ └── viol.query.n3 ├── rules │ ├── A10_Equivalent_Properties │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A11_Literal_Value_Comparison │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A12_Value_is_Valid_for_Datatype │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A13_Property_Domains │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A14_Property_Ranges │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A15_Class-Specific_Property_Range │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A16_Data_Property_Facets │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A17_Literal_Ranges │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A18_Negative_Literal_Ranges │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A19_IRI_Pattern_Matching │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A1_Functional_Properties │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A20_Literal_Pattern_Matching │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A21_Negative_Literal_Pattern_Matching │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A22_Existential_Quantifications │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A23_Universal_Quantifications │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A24_Value_Restrictions │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A25_Use_Sub-Super_Relations_in_Validation │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A26_Negative_Property_Constraints │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A27_Language_Tag_Matching │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A28_Language_Tag_Cardinality │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A2_Inverse-Functional_Properties │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A32_Minimum_Unqualified_Cardinality_Restrictions │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A33_Minimum_Qualified_Cardinality_Restrictions │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A34_Maximum_Unqualified_Cardinality_Restrictions │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A35_Maximum_Qualified_Cardinality_Restrictions │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A36_Exact_Unqualified_Cardinality_Restrictions │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A37_Exact_Qualified_Cardinality_Restrictions │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A3_Primary_Key_Properties │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A41_Required_Properties │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A42_Optional_Properties │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A43_Repeatable_Properties │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A44_Conditional_Properties │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A45_Recommended_Properties │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A4_Subsumption │ │ ├── .gitkeep │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A57_Asymmetric_Object_Properties │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A5_Sub-Properties │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A64_Irreflexive_Object_Properties │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A69_Disjoint_Properties │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A6_Object_Property_Paths │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A70_Disjoint_Classes │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A78_Conjunction │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A79_Disjunction │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A7_Allowed_Values │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A80_Negation │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A81_Default_Values │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A8_Not_Allowed_Values │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── A9_Class_Equivalence │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── B1_PVT_Pattern │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── B2_Triple_Pattern │ │ ├── constraint.ttl │ │ ├── data.ttl │ │ ├── out.n3 │ │ └── rule.n3 │ ├── query.n3 │ ├── query_byType.n3 │ ├── query_count.n3 │ └── reasoning │ │ ├── owl_rules.n3 │ │ ├── rdfsResource.n3 │ │ ├── rdfsSubClassOf.n3 │ │ └── rdfs_rules.n3 ├── testontology.ttl └── transShacl.n3 ├── routes └── api.js ├── spec ├── SpecTester.js └── owl-rdfunitSpec.js ├── test ├── ConstraintTypesTestSpec.js ├── EyeHandlerSpec.js ├── OntologyVaultSpec.js ├── RuleTestSpec.js ├── TtlFetcherSpec.js ├── ValidatorSpec.js ├── bugSpec.js ├── bugs │ ├── correct.01.mapping.rml.ttl │ ├── correct.01.out.ttl │ ├── correct.02.mapping.rml.ttl │ ├── correct.02.out.ttl │ ├── one-lang.01.mapping.rml.ttl │ ├── one-lang.01.out.ttl │ ├── one-lang.02.mapping.rml.ttl │ ├── one-lang.02.out.ttl │ ├── owl-asymp.01.mapping.rml.ttl │ ├── owl-asymp.01.out.ttl │ ├── owl-asymp.02.mapping.rml.ttl │ ├── owl-asymp.02.out.ttl │ ├── owl-card.01.mapping.rml.ttl │ ├── owl-card.01.out.ttl │ ├── owl-card.02.mapping.rml.ttl │ ├── owl-card.02.out.ttl │ ├── owl-disjc.01.mapping.rml.ttl │ ├── owl-disjc.01.out.ttl │ ├── owl-disjc.02.mapping.rml.ttl │ ├── owl-disjc.02.out.ttl │ ├── owl-disjc.03.mapping.rml.ttl │ ├── owl-disjc.03.out.ttl │ ├── owl-disjp.01.mapping.rml.ttl │ ├── owl-disjp.01.out.ttl │ ├── owl-disjp.02.mapping.rml.ttl │ ├── owl-disjp.02.out.ttl │ ├── owl-irrefp.01.mapping.rml.ttl │ ├── owl-irrefp.01.out.ttl │ ├── owl-irrefp.02.mapping.rml.ttl │ ├── owl-irrefp.02.out.ttl │ ├── owl-typedep.01.mapping.rml.ttl │ ├── owl-typedep.01.out.ttl │ ├── owl-typepdep.01.mapping.rml.ttl │ ├── owl-typepdep.01.out.ttl │ ├── rdfs-range.01.mapping.rml.ttl │ ├── rdfs-range.01.out.ttl │ ├── rdfs-range.02.mapping.rml.ttl │ ├── rdfs-range.02.out.ttl │ ├── rdfs-range.03.mapping.rml.ttl │ ├── rdfs-range.03.out.ttl │ ├── rdfs-range.04.mapping.rml.ttl │ ├── rdfs-range.04.out.ttl │ ├── rdfs-range.05.mapping.rml.ttl │ ├── rdfs-range.05.out.ttl │ ├── rdfs-range.06.mapping.rml.ttl │ ├── rdfs-range.06.out.ttl │ ├── rdfs-range.07.mapping.rml.ttl │ ├── rdfs-range.07.out.ttl │ ├── rr-type.01.mapping.rml.ttl │ └── rr-type.01.out.ttl ├── owl │ ├── INVFUNC_Correct.ttl │ ├── INVFUNC_Wrong.ttl │ ├── OWLCARDT_Correct.ttl │ ├── OWLCARDT_Wrong_Exact.ttl │ ├── OWLCARDT_Wrong_Max.ttl │ ├── OWLCARDT_Wrong_Min.ttl │ ├── OWLDISJC_Correct.ttl │ ├── OWLDISJC_Wrong.ttl │ ├── OWLQCARDT_Correct.ttl │ ├── OWLQCARDT_Wrong_Exact.ttl │ ├── OWLQCARDT_Wrong_Max.ttl │ ├── OWLQCARDT_Wrong_Min.ttl │ ├── RDFLANGSTRING_Correct.ttl │ ├── RDFLANGSTRING_Wrong.ttl │ ├── RDFSRANGE-MISS_Wrong.ttl │ ├── RDFSRANGED_Correct.ttl │ ├── RDFSRANGED_Wrong.ttl │ ├── RDFSRANGE_Correct.ttl │ ├── RDFSRANGE_Wrong.ttl │ ├── RDFSRANG_LIT_Correct.ttl │ ├── RDFSRANG_LIT_Wrong.ttl │ └── ontology.ttl ├── rmlSpec.js ├── test.ttl └── testSpec.js ├── tests ├── manifest.ttl ├── owl-rdfunit │ ├── application.ttl │ ├── invfunc_correct.ttl │ ├── invfunc_wrong.ttl │ ├── manifest.ttl │ ├── ontology.ttl │ ├── output_correct.ttl │ ├── output_wrong_1.ttl │ ├── output_wrong_2.ttl │ ├── output_wrong_3.ttl │ ├── output_wrong_6.ttl │ ├── owlcardt_correct.ttl │ ├── owlcardt_wrong_exact.ttl │ ├── owlcardt_wrong_max.ttl │ ├── owlcardt_wrong_min.ttl │ ├── owldisjc_correct.ttl │ ├── owldisjc_wrong.ttl │ ├── owlqcardt_correct.ttl │ ├── owlqcardt_wrong_exact.ttl │ ├── owlqcardt_wrong_max.ttl │ ├── owlqcardt_wrong_min.ttl │ ├── rdflangstring_correct.ttl │ ├── rdflangstring_wrong.ttl │ ├── rdfsrang_lit_correct.ttl │ ├── rdfsrang_lit_wrong.ttl │ ├── rdfsrange-miss_wrong.ttl │ ├── rdfsrange_correct.ttl │ ├── rdfsrange_wrong.ttl │ ├── rdfsranged_correct.ttl │ └── rdfsranged_wrong.ttl └── shacl │ ├── core │ ├── complex │ │ ├── manifest.ttl │ │ ├── personexample.ttl │ │ ├── shacl-shacl-data-shapes.ttl │ │ └── shacl-shacl.ttl │ ├── manifest.ttl │ ├── misc │ │ ├── deactivated-001.ttl │ │ ├── deactivated-002.ttl │ │ ├── manifest.ttl │ │ ├── message-001.ttl │ │ ├── severity-001.ttl │ │ └── severity-002.ttl │ ├── node │ │ ├── and-001.ttl │ │ ├── and-002.ttl │ │ ├── class-001.ttl │ │ ├── class-002.ttl │ │ ├── class-003.ttl │ │ ├── closed-001.ttl │ │ ├── closed-002.ttl │ │ ├── datatype-001.ttl │ │ ├── datatype-002.ttl │ │ ├── disjoint-001.ttl │ │ ├── equals-001.ttl │ │ ├── hasValue-001.ttl │ │ ├── in-001.ttl │ │ ├── languageIn-001.ttl │ │ ├── manifest.ttl │ │ ├── maxExclusive-001.ttl │ │ ├── maxInclusive-001.ttl │ │ ├── maxLength-001.ttl │ │ ├── minExclusive-001.ttl │ │ ├── minInclusive-001.ttl │ │ ├── minInclusive-002.ttl │ │ ├── minInclusive-003.ttl │ │ ├── minLength-001.ttl │ │ ├── node-001.ttl │ │ ├── nodeKind-001.ttl │ │ ├── not-001.ttl │ │ ├── not-002.ttl │ │ ├── or-001.ttl │ │ ├── pattern-001.ttl │ │ ├── pattern-002.ttl │ │ ├── qualified-001-data.ttl │ │ ├── qualified-001-shapes.ttl │ │ ├── qualified-001.ttl │ │ ├── xone-001.ttl │ │ ├── xone-duplicate-data.ttl │ │ ├── xone-duplicate-shapes.ttl │ │ └── xone-duplicate.ttl │ ├── path │ │ ├── manifest.ttl │ │ ├── path-alternative-001.ttl │ │ ├── path-complex-001.ttl │ │ ├── path-complex-002-data.ttl │ │ ├── path-complex-002-shapes.ttl │ │ ├── path-complex-002.ttl │ │ ├── path-inverse-001.ttl │ │ ├── path-oneOrMore-001.ttl │ │ ├── path-sequence-001.ttl │ │ ├── path-sequence-002.ttl │ │ ├── path-sequence-duplicate-001.ttl │ │ ├── path-strange-001.ttl │ │ ├── path-strange-002.ttl │ │ ├── path-unused-001-data.ttl │ │ ├── path-unused-001-shapes.ttl │ │ ├── path-unused-001.ttl │ │ ├── path-zeroOrMore-001.ttl │ │ └── path-zeroOrOne-001.ttl │ ├── property │ │ ├── and-001.ttl │ │ ├── class-001.ttl │ │ ├── datatype-001.ttl │ │ ├── datatype-002.ttl │ │ ├── datatype-003.ttl │ │ ├── datatype-ill-formed-data.ttl │ │ ├── datatype-ill-formed-shapes.ttl │ │ ├── datatype-ill-formed.ttl │ │ ├── disjoint-001.ttl │ │ ├── equals-001.ttl │ │ ├── hasValue-001.ttl │ │ ├── in-001.ttl │ │ ├── languageIn-001.ttl │ │ ├── lessThan-001.ttl │ │ ├── lessThan-002.ttl │ │ ├── lessThanOrEquals-001.ttl │ │ ├── manifest.ttl │ │ ├── maxCount-001.ttl │ │ ├── maxCount-002.ttl │ │ ├── maxExclusive-001.ttl │ │ ├── maxInclusive-001.ttl │ │ ├── maxLength-001.ttl │ │ ├── minCount-001.ttl │ │ ├── minCount-002.ttl │ │ ├── minExclusive-001.ttl │ │ ├── minExclusive-002.ttl │ │ ├── minLength-001.ttl │ │ ├── node-001.ttl │ │ ├── node-002.ttl │ │ ├── nodeKind-001.ttl │ │ ├── not-001.ttl │ │ ├── or-001.ttl │ │ ├── or-datatypes-001.ttl │ │ ├── pattern-001.ttl │ │ ├── pattern-002.ttl │ │ ├── property-001.ttl │ │ ├── qualifiedMinCountDisjoint-001.ttl │ │ ├── qualifiedValueShape-001.ttl │ │ ├── qualifiedValueShapesDisjoint-001.ttl │ │ ├── uniqueLang-001.ttl │ │ ├── uniqueLang-002-data.ttl │ │ ├── uniqueLang-002-shapes.ttl │ │ └── uniqueLang-002.ttl │ ├── targets │ │ ├── manifest.ttl │ │ ├── multipleTargets-001.ttl │ │ ├── targetClass-001.ttl │ │ ├── targetClassImplicit-001.ttl │ │ ├── targetNode-001.ttl │ │ ├── targetObjectsOf-001.ttl │ │ ├── targetSubjectsOf-001.ttl │ │ └── targetSubjectsOf-002.ttl │ └── validation-reports │ │ ├── manifest.ttl │ │ ├── shared-data.ttl │ │ ├── shared-shapes.ttl │ │ └── shared.ttl │ ├── manifest.ttl │ └── sparql │ ├── component │ ├── manifest.ttl │ ├── nodeValidator-ask-001.ttl │ ├── optional-001.ttl │ ├── propertyValidator-ask-001.ttl │ ├── propertyValidator-select-001.ttl │ └── validator-001.ttl │ ├── manifest.ttl │ ├── node │ ├── manifest.ttl │ ├── prefixes-001.ttl │ ├── sparql-001.ttl │ ├── sparql-002.ttl │ └── sparql-003.ttl │ ├── pre-binding │ ├── manifest.ttl │ ├── pre-binding-001.ttl │ ├── pre-binding-002.ttl │ ├── pre-binding-003.ttl │ ├── pre-binding-004.ttl │ ├── pre-binding-005.ttl │ ├── pre-binding-006.ttl │ ├── pre-binding-007.ttl │ ├── shapesGraph-001.ttl │ ├── unsupported-sparql-001.ttl │ ├── unsupported-sparql-002.ttl │ ├── unsupported-sparql-003.ttl │ ├── unsupported-sparql-004.ttl │ ├── unsupported-sparql-005.ttl │ └── unsupported-sparql-006.ttl │ └── property │ ├── manifest.ttl │ └── sparql-001.ttl ├── tmp └── .gitkeep ├── validate.js └── views ├── error.pug ├── index.pug └── layout.pug /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | resources/ 3 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "no-console": 0, 4 | "indent": [0, 2], 5 | "quotes": [ 6 | 0, 7 | "single" 8 | ], 9 | "semi": [ 10 | 2, 11 | "always" 12 | ] 13 | }, 14 | "env": { 15 | "es6": true, 16 | "node": true 17 | }, 18 | "ecmaFeatures": { 19 | "modules": true, 20 | "experimentalObjectRestSpread": true 21 | }, 22 | "extends": "eslint:recommended" 23 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | node_modules/ 3 | /tmp/* 4 | !/tmp/.gitkeep 5 | /log/* 6 | !/log/.gitkeep 7 | out-*.ttl 8 | /resources/ontologies/*.ttl 9 | /test/bugs/*.test-output.ttl 10 | /tests/*/*-result.ttl 11 | _old/ 12 | -------------------------------------------------------------------------------- /dist/n3unit.pvm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/dist/n3unit.pvm -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # Validatrr docs 2 | 3 | See the site: https://idlabresearch.github.io/validatrr/ 4 | 5 | ## Installation 6 | 7 | Run `npm install` and `npm run dev` which will open up a preview of the template in your default browser, watch for changes to core template files, and live reload the browser when changes are saved. You can view the `gulpfile.js` to see which tasks are included with the dev environment. 8 | -------------------------------------------------------------------------------- /docs/img/bg-mobile-fallback.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/docs/img/bg-mobile-fallback.jpg -------------------------------------------------------------------------------- /docs/js/coming-soon.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | "use strict"; // Start of use strict 3 | 4 | // No JS 5 | 6 | })(jQuery); // End of use strict 7 | -------------------------------------------------------------------------------- /docs/js/coming-soon.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Start Bootstrap - v () 3 | * Copyright 2013-2019 4 | * Licensed under (https://github.com/BlackrockDigital//blob/master/LICENSE) 5 | */ 6 | 7 | jQuery; -------------------------------------------------------------------------------- /docs/mp4/bg.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/docs/mp4/bg.mp4 -------------------------------------------------------------------------------- /docs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "scripts": { 3 | "dev": "gulp dev" 4 | }, 5 | "dependencies": { 6 | "@fortawesome/fontawesome-free": "5.3.1", 7 | "bootstrap": "^4.3.1", 8 | "jquery": "^3.5.0" 9 | }, 10 | "devDependencies": { 11 | "browser-sync": "^2.26.7", 12 | "gulp": "^4.0.2", 13 | "gulp-autoprefixer": "6.0.0", 14 | "gulp-clean-css": "3.10.0", 15 | "gulp-header": "2.0.5", 16 | "gulp-rename": "1.4.0", 17 | "gulp-sass": "4.0.1", 18 | "gulp-uglify": "3.0.1" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /docs/scss/_bootstrap-overrides.scss: -------------------------------------------------------------------------------- 1 | .btn-secondary { 2 | background-color: $secondary; 3 | border-color: $secondary; 4 | &:active, 5 | &:focus, 6 | &:hover { 7 | background-color: darken($secondary, 10%) !important; 8 | border-color: darken($secondary, 10%) !important; 9 | } 10 | } 11 | 12 | .input { 13 | font-weight: 300 !important; 14 | } 15 | -------------------------------------------------------------------------------- /docs/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // Background Cover Mixin 3 | @mixin background-cover { 4 | -webkit-background-size: cover; 5 | -moz-background-size: cover; 6 | -o-background-size: cover; 7 | background-size: cover; 8 | } 9 | 10 | // Font Mixins 11 | @mixin body-font { 12 | font-family: 'Source Sans Pro'; 13 | font-weight: 300; 14 | } 15 | @mixin heading-font { 16 | font-family: 'Merriweather'; 17 | font-weight: 700; 18 | } 19 | -------------------------------------------------------------------------------- /docs/scss/_variables.scss: -------------------------------------------------------------------------------- 1 | // Variables 2 | 3 | // Restated Bootstrap Variables 4 | 5 | $white: #fff !default; 6 | $gray-100: #f8f9fa !default; 7 | $gray-200: #e9ecef !default; 8 | $gray-300: #dee2e6 !default; 9 | $gray-400: #ced4da !default; 10 | $gray-500: #adb5bd !default; 11 | $gray-600: #868e96 !default; 12 | $gray-700: #495057 !default; 13 | $gray-800: #343a40 !default; 14 | $gray-900: #212529 !default; 15 | $black: #000 !default; 16 | 17 | $primary: #1582be !default; 18 | $secondary: #FF9210 !default; 19 | -------------------------------------------------------------------------------- /docs/scss/coming-soon.scss: -------------------------------------------------------------------------------- 1 | // Core variables and mixins 2 | @import "variables.scss"; 3 | @import "mixins.scss"; 4 | // Global CSS 5 | @import "global.scss"; 6 | // Components 7 | @import "masthead.scss"; 8 | @import "social.scss"; 9 | @import "bootstrap-overrides.scss"; 10 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/less/_animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | animation: fa-spin 2s infinite linear; 6 | } 7 | 8 | .@{fa-css-prefix}-pulse { 9 | animation: fa-spin 1s infinite steps(8); 10 | } 11 | 12 | @keyframes fa-spin { 13 | 0% { 14 | transform: rotate(0deg); 15 | } 16 | 100% { 17 | transform: rotate(360deg); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/less/_bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | border-radius: .1em; 6 | border: solid .08em @fa-border-color; 7 | padding: .2em .25em .15em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix}, .fas, .far, .fal, .fab { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/less/_core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}, .fas, .far, .fal, .fab { 5 | -moz-osx-font-smoothing: grayscale; 6 | -webkit-font-smoothing: antialiased; 7 | display: inline-block; 8 | font-style: normal; 9 | font-variant: normal; 10 | text-rendering: auto; 11 | line-height: 1; 12 | } 13 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/less/_fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | text-align: center; 5 | width: (20em / 16); 6 | } 7 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/less/_list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | list-style-type: none; 6 | margin-left: @fa-li-width * 5/4; 7 | padding-left: 0; 8 | 9 | > li { position: relative; } 10 | } 11 | 12 | .@{fa-css-prefix}-li { 13 | left: -@fa-li-width; 14 | position: absolute; 15 | text-align: center; 16 | width: @fa-li-width; 17 | line-height: inherit; 18 | } 19 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/less/_screen-reader.less: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { .sr-only(); } 5 | .sr-only-focusable { .sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/less/v4-shims.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.3.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @import '_variables.less'; 6 | @import '_shims.less'; 7 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | animation: fa-spin 2s infinite linear; 6 | } 7 | 8 | .#{$fa-css-prefix}-pulse { 9 | animation: fa-spin 1s infinite steps(8); 10 | } 11 | 12 | @keyframes fa-spin { 13 | 0% { 14 | transform: rotate(0deg); 15 | } 16 | 17 | 100% { 18 | transform: rotate(360deg); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | border: solid .08em $fa-border-color; 6 | border-radius: .1em; 7 | padding: .2em .25em .15em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix}, 14 | .fas, 15 | .far, 16 | .fal, 17 | .fab { 18 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 19 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 20 | } 21 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}, 5 | .fas, 6 | .far, 7 | .fal, 8 | .fab { 9 | -moz-osx-font-smoothing: grayscale; 10 | -webkit-font-smoothing: antialiased; 11 | display: inline-block; 12 | font-style: normal; 13 | font-variant: normal; 14 | text-rendering: auto; 15 | line-height: 1; 16 | } 17 | 18 | %fa-icon { 19 | @include fa-icon; 20 | } 21 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | text-align: center; 5 | width: (20em / 16); 6 | } 7 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | // makes the font 33% larger relative to the icon container 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -.0667em; 9 | } 10 | 11 | .#{$fa-css-prefix}-xs { 12 | font-size: .75em; 13 | } 14 | 15 | .#{$fa-css-prefix}-sm { 16 | font-size: .875em; 17 | } 18 | 19 | @for $i from 1 through 10 { 20 | .#{$fa-css-prefix}-#{$i}x { 21 | font-size: $i * 1em; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | list-style-type: none; 6 | margin-left: $fa-li-width * 5/4; 7 | padding-left: 0; 8 | 9 | > li { position: relative; } 10 | } 11 | 12 | .#{$fa-css-prefix}-li { 13 | left: -$fa-li-width; 14 | position: absolute; 15 | text-align: center; 16 | width: $fa-li-width; 17 | line-height: inherit; 18 | } 19 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/scss/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { @include sr-only; } 5 | .sr-only-focusable { @include sr-only-focusable; } 6 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/scss/fontawesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.3.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @import 'variables'; 6 | @import 'mixins'; 7 | @import 'core'; 8 | @import 'larger'; 9 | @import 'fixed-width'; 10 | @import 'list'; 11 | @import 'bordered-pulled'; 12 | @import 'animated'; 13 | @import 'rotated-flipped'; 14 | @import 'stacked'; 15 | @import 'icons'; 16 | @import 'screen-reader'; 17 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/scss/v4-shims.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.3.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @import 'variables'; 6 | @import 'shims'; 7 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/adn.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/angular.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/autoprefixer.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/bandcamp.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/bitbucket.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/black-tie.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/buysellads.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/cloudsmith.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/css3-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/css3.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/cuttlefish.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/dashcube.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/deviantart.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/discourse.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/dochub.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/dropbox.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/dyalog.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/elementor.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/ethereum.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/facebook-f.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/facebook-messenger.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/facebook-square.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/facebook.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/firstdraft.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/flipboard.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/gg.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/gitter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/google-drive.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/google-play.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/google.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/gratipay.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/hacker-news-square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/hacker-news.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/hotjar.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/houzz.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/html5.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/korvue.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/magento.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/maxcdn.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/microsoft.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/mix.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/modx.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/monero.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/npm.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/openid.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/patreon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/product-hunt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/rockrms.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/servicestack.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/sistrix.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/stack-exchange.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/stack-overflow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/strava.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/telegram-plane.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/twitch.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/uikit.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/viacoin.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/vuejs.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/windows.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/y-combinator.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/yandex-international.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/brands/yandex.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/regular/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/regular/calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/regular/circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/regular/file.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/regular/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/regular/play-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/regular/square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/regular/star-half.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/regular/sticky-note.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/regular/stop-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/regular/window-maximize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/regular/window-minimize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/regular/window-restore.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/adjust.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/angle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/angle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/angle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/angle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/archive.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/arrow-alt-circle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/arrow-alt-circle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/arrow-alt-circle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/arrow-alt-circle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/arrow-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/arrow-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/backward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/battery-empty.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/battery-full.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/battery-half.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/battery-quarter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/battery-three-quarters.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/box.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/briefcase.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/brush.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/burn.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/caret-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/caret-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/caret-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/caret-square-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/caret-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/chalkboard.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/chart-area.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/check.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/chevron-circle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/chevron-circle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/chevron-circle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/chevron-circle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/chevron-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/clock.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/clone.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/cloud.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/coffee.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/columns.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/comment-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/comment.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/compact-disc.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/cross.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/desktop.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/dice-one.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/dice-two.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/divide.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/door-closed.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/dot-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/ellipsis-h.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/ellipsis-v.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/equals.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/exclamation.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/fast-backward.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/fast-forward.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/file.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/filter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/folder-minus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/forward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/gem.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/genderless.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/glass-martini-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/glass-martini.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/heart.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/hockey-puck.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/hospital-symbol.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/industry.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/laptop.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/location-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/lock-open.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/lock.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/long-arrow-alt-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/long-arrow-alt-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/long-arrow-alt-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/long-arrow-alt-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/map-marker-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/map-marker.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/map.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/meh-blank.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/meh.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/minus-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/minus-square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/mobile-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/mobile.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/neuter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/paper-plane.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/paragraph.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/parking.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/pause-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/pause.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/pen.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/phone.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/play-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/play.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/plus-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/qrcode.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/seedling.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/shield-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/sign.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/sort-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/sort-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/sort.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/square-full.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/star-half.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/star.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/step-backward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/step-forward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/sticky-note.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/stop-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/stop.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/suitcase.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/table.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/tablet-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/tablet.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/tape.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/toggle-on.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/tv.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/unlock.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/user-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/user-tie.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/user.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/utensil-spoon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/video.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/volume-off.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/window-maximize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/window-minimize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/svgs/solid/wine-glass.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/docs/vendor/fontawesome-free/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/docs/vendor/fontawesome-free/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/docs/vendor/fontawesome-free/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/docs/vendor/fontawesome-free/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/docs/vendor/fontawesome-free/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/docs/vendor/fontawesome-free/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/docs/vendor/fontawesome-free/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/docs/vendor/fontawesome-free/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/docs/vendor/fontawesome-free/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/docs/vendor/fontawesome-free/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/docs/vendor/fontawesome-free/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /docs/vendor/fontawesome-free/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/docs/vendor/fontawesome-free/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /log/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/log/.gitkeep -------------------------------------------------------------------------------- /public/stylesheets/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding: 50px; 3 | font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; 4 | } 5 | 6 | a { 7 | color: #00B7FF; 8 | } 9 | -------------------------------------------------------------------------------- /resources/owl2ttl.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | from rdflib import Graph 3 | import sys 4 | 5 | g = Graph() 6 | g.parse(sys.argv[1]) 7 | 8 | print g.serialize(format='turtle') -------------------------------------------------------------------------------- /resources/rml/all.query.n3: -------------------------------------------------------------------------------- 1 | { ?s ?p ?o. } => { ?s ?p ?o. } . 2 | -------------------------------------------------------------------------------- /resources/rml/input.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rml: . 4 | @prefix xsd: . 5 | 6 | <#Mapping> 7 | rr:subjectMap [ rr:template "http://example.com/{Name}_{Surname}" ; rr:class foaf:Project ] ; 8 | rr:predicateObjectMap [ rr:predicate foaf:age ; rr:objectMap <#ObjectMap1> ] . 9 | 10 | <#ObjectMap1> 11 | rml:reference "Age" ; rr:datatype xsd:float . -------------------------------------------------------------------------------- /resources/rml/rules/1_no-rdf-type/README.MD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/resources/rml/rules/1_no-rdf-type/README.MD -------------------------------------------------------------------------------- /resources/rml/rules/1_no-rdf-type/input-1.ttl: -------------------------------------------------------------------------------- 1 | #errors: 1 2 | @prefix rr: . 3 | @prefix foaf: . 4 | @prefix rml: . 5 | @prefix xsd: . 6 | 7 | <#AirportMapping> 8 | rr:subjectMap [ 9 | rr:template "http://airport.example.com/{id}"; 10 | ]. 11 | -------------------------------------------------------------------------------- /resources/rml/rules/1_no-rdf-type/input-5.ttl: -------------------------------------------------------------------------------- 1 | #errors: 0 2 | @prefix rr: . 3 | @prefix foaf: . 4 | @prefix rml: . 5 | @prefix xsd: . 6 | @prefix transit: . 7 | 8 | <#AirportMapping> 9 | rr:subjectMap [ 10 | rr:template "http://airport.example.com/{id}"; 11 | rr:class transit:Stop 12 | ]. 13 | -------------------------------------------------------------------------------- /resources/rml/rules/1_no-rdf-type/output-2.ttl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/resources/rml/rules/1_no-rdf-type/output-2.ttl -------------------------------------------------------------------------------- /resources/rml/rules/1_no-rdf-type/output-3.ttl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/resources/rml/rules/1_no-rdf-type/output-3.ttl -------------------------------------------------------------------------------- /resources/rml/rules/1_no-rdf-type/output-4.ttl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/resources/rml/rules/1_no-rdf-type/output-4.ttl -------------------------------------------------------------------------------- /resources/rml/rules/1_no-rdf-type/output-5.ttl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/resources/rml/rules/1_no-rdf-type/output-5.ttl -------------------------------------------------------------------------------- /resources/rml/rules/1b_disjoint/README.MD: -------------------------------------------------------------------------------- 1 | #Fix? 2 | 3 | transit:Stop disjoint ex:Stop 4 | 5 | not refined - manually remove one of the two intelligently decide which one to keep based on the rest -------------------------------------------------------------------------------- /resources/rml/rules/2_incorrect-domain/README.MD: -------------------------------------------------------------------------------- 1 | #Problem? 2 | 3 | transit:route should have transit:Stop domain 4 | 5 | #Fix? 6 | 7 | the rdfs:domain of the rr:predicate value should be the same (or a superclass) of the rr:class 8 | 9 | (or an equivalent class or a superclass of an equivalent class as discussed but you said not applicable) -------------------------------------------------------------------------------- /resources/rml/rules/3_missing dataType/README.MD: -------------------------------------------------------------------------------- 1 | #Problem? 2 | 3 | (considered as literal) 4 | 5 | but transit:route needs xsd:int 6 | 7 | #Fix? 8 | 9 | if the rr:predicate value has a datatype as rdfs:range then there should exists an rr:datatype triple in the objectMap 10 | 11 | 2nd case a bit weird but could happen.. 12 | -------------------------------------------------------------------------------- /resources/rml/rules/3_missing dataType/correct-1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rml: . 4 | @prefix xsd: . 5 | 6 | <#AirportMapping> 7 | rr:subjectMap [ 8 | rr:template "http://airport.example.com/{id}"; 9 | rr:class transit:Stop 10 | ]; 11 | rr:predicateObjectMap [ 12 | rr:predicate transit:route; 13 | rr:objectMap [ 14 | rml:reference "stop"; 15 | rr:datatype xsd:int 16 | ] 17 | ]. 18 | 19 | -------------------------------------------------------------------------------- /resources/rml/rules/3_missing dataType/correct-2.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rml: . 4 | @prefix xsd: . 5 | 6 | <#AirportMapping> 7 | rr:subjectMap [ 8 | rr:template "http://airport.example.com/{id}"; 9 | rr:class transit:Stop 10 | ]; 11 | rr:predicateObjectMap [ 12 | rr:predicate transit:route; 13 | rr:objectMap [ 14 | rml:reference "stop"; 15 | rr:datatype xsd:int 16 | ] 17 | ]. 18 | 19 | -------------------------------------------------------------------------------- /resources/rml/rules/3_missing dataType/correct-3.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rml: . 4 | @prefix xsd: . 5 | 6 | <#AirportMapping> 7 | rr:subjectMap [ 8 | rr:template "http://airport.example.com/{id}"; 9 | rr:class transit:Stop 10 | ]; 11 | rr:predicateObjectMap [ 12 | rr:predicate transit:route; 13 | rr:objectMap [ 14 | rr:constant "8"; 15 | rr:datatype xsd:int 16 | ] 17 | ]. 18 | -------------------------------------------------------------------------------- /resources/rml/rules/3_missing dataType/input-3.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rml: . 4 | @prefix xsd: . 5 | @prefix transit: . 6 | 7 | <#AirportMapping> 8 | rr:subjectMap [ 9 | rr:template "http://airport.example.com/{id}"; 10 | rr:class transit:Stop 11 | ]; 12 | rr:predicateObjectMap [ 13 | rr:predicate transit:route; 14 | rr:objectMap [ 15 | rr:constant "8"; 16 | ] 17 | ]. -------------------------------------------------------------------------------- /resources/rml/rules/3a_incorrect-datatype/README.MD: -------------------------------------------------------------------------------- 1 | #Problem? 2 | 3 | transit:route mapped to double but needs xsd:int 4 | 5 | #Fix? 6 | 7 | similar with #3 but expect to be the same 8 | -------------------------------------------------------------------------------- /resources/rml/rules/3a_incorrect-datatype/correct-1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rml: . 4 | @prefix xsd: . 5 | 6 | <#AirportMapping> 7 | rr:subjectMap [ 8 | rr:template "http://airport.example.com/{id}"; 9 | rr:class transit:Stop 10 | ]; 11 | rr:predicateObjectMap [ 12 | rr:predicate transit:route; 13 | rr:objectMap [ 14 | rml:reference "stop"; 15 | rr:datatype xsd:int 16 | ] 17 | ]. -------------------------------------------------------------------------------- /resources/rml/rules/3a_incorrect-datatype/output-2.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rml/rules/3a_incorrect-datatype/output-4.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rml/rules/3b_correct-data-type-incompatible-data/README.MD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/resources/rml/rules/3b_correct-data-type-incompatible-data/README.MD -------------------------------------------------------------------------------- /resources/rml/rules/3b_correct-data-type-incompatible-data/output-1.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rml/rules/4_literal-instead-of-object/README.MD: -------------------------------------------------------------------------------- 1 | #Problem? 2 | 3 | dcterms:publisher is object property but literal is given instead 4 | 5 | #Fix? 6 | 7 | rr:constant should be taken into account in above cases. 8 | 9 | plus a special case where we check : 10 | if rr:constant OR rr:template value is literal (rr:termType rr:Literal) and rr:predicate value has an ObjectPoperty 11 | then require rr:termType rr:IRI 12 | 13 | -------------------------------------------------------------------------------- /resources/rml/rules/4_literal-instead-of-object/output-1.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rml/rules/5_wrong-range/README.MD: -------------------------------------------------------------------------------- 1 | #Problem? 2 | 3 | dcterms:publisher has range dcterms:Agent but transit:Stop is given instead 4 | 5 | #Fix? 6 | 7 | This is tricky as the properties used at <#ProductOwner> might need the domain to be transit:Stop while the dcterms:publisher requires dcterms:Agent 8 | -------------------------------------------------------------------------------- /resources/rml/rules/5_wrong-range/output-3.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rml/rules/6_generated-subject-should-have-class/README.MD: -------------------------------------------------------------------------------- 1 | NOFIX 2 | 3 | #Problem? 4 | 5 | if range in the base URI, it should have class 6 | if not, then it should be dereferenced 7 | -------------------------------------------------------------------------------- /resources/rml/rules/6_generated-subject-should-have-class/output-1.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rml/rules/7_rdf-langstring/README.MD: -------------------------------------------------------------------------------- 1 | #Problem? 2 | 3 | if property is an rdf:langString check if language tag is generated 4 | 5 | (Checks only f if it doesn’t have 6 | rr:termType rr:datatype ) 7 | 8 | -------------------------------------------------------------------------------- /resources/rml/rules/7_rdf-langstring/correct-1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rml: . 4 | @prefix xsd: . 5 | 6 | <#AirportMapping> 7 | rr:subjectMap [ 8 | rr:template "http://airport.example.com/{id}"; 9 | rr:class transit:Stop 10 | ]; 11 | rr:predicateObjectMap [ 12 | rr:predicate transit:route; 13 | rr:objectMap [ 14 | rml:reference "stop"; 15 | rr:language “en-US” ; 16 | ] 17 | ] . 18 | -------------------------------------------------------------------------------- /resources/rml/rules/7_rdf-langstring/correct-3.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rml: . 4 | @prefix xsd: . 5 | 6 | <#AirportMapping> 7 | rr:subjectMap [ 8 | rr:template "http://airport.example.com/{id}"; 9 | rr:class transit:Stop 10 | ]; 11 | rr:predicateObjectMap [ 12 | rr:predicate transit:route; 13 | rr:objectMap [ 14 | rr:constant "stop/whatever"; 15 | rr:language “en-US” 16 | ] 17 | ]. -------------------------------------------------------------------------------- /resources/rml/rules/7_rdf-langstring/output-1.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rml/rules/7_rdf-langstring/output-2.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rml/rules/7_rdf-langstring/output-3.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rml/rules/8_predicate-as-object/README.MD: -------------------------------------------------------------------------------- 1 | #Problem? 2 | 3 | predicate is an objectProperty 4 | 5 | #Fix? 6 | 7 | 8 | if it’s an object property, the first one is wrong. 9 | rml:reference automatically implies that a literal is generated unless rr:termType rr:IRI is specified 10 | 11 | 12 | 13 | In the last case any rr:datatype doesn’t generate a resource (but a Literal), it’s wrong 14 | 15 | 16 | 17 | In the case of constant 18 | rr:constant "stop/whatever" is wrong but 19 | rr:constant ex:Something is correct 20 | 21 | 22 | -------------------------------------------------------------------------------- /resources/rml/rules/8_predicate-as-object/correct-3.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rml: . 4 | @prefix xsd: . 5 | 6 | <#AirportMapping> 7 | rr:subjectMap [ 8 | rr:template "http://airport.example.com/{id}"; 9 | rr:class transit:Stop 10 | ]; 11 | rr:predicateObjectMap [ 12 | rr:predicate transit:route; 13 | rr:objectMap [ 14 | rml:reference "stop"; 15 | rr:termType rr:IRI # if transit:route object 16 | 17 | ] -------------------------------------------------------------------------------- /resources/rml/rules/8_predicate-as-object/output-1.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rml/rules/8_predicate-as-object/output-2.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rml/rules/8_predicate-as-object/output-3.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rml/rules/8_predicate-as-object/output-4.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rml/rules/9_deprecated-property/README.MD: -------------------------------------------------------------------------------- 1 | #Problem? 2 | 3 | deprecated property 4 | 5 | #Fix? 6 | 7 | Is there a way to find out a recommended alternative for a deprecated property? 8 | 9 | Warning 10 | 11 | The alternative way is too ugly, could happen but don’t know if it makes sense to have it 12 | -------------------------------------------------------------------------------- /resources/rml/rules/9_deprecated-property/output-1.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rml/rules/9_deprecated-property/output-2.ttl: -------------------------------------------------------------------------------- 1 | PREFIX rlog: 2 | 3 | rlog:todo a rlog:TODO . 4 | -------------------------------------------------------------------------------- /resources/rules/A10_Equivalent_Properties/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @base . 6 | 7 | 8 | 9 | :A-Brief-History-Of-Time :author :Stephen_Hawking . 10 | 11 | -------------------------------------------------------------------------------- /resources/rules/A12_Value_is_Valid_for_Datatype/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :Tom_Sawyer a :Publication; 11 | :numberPages "-4.9"^^xsd:integer; 12 | :publishedAt "u"^^xsd:date. 13 | 14 | -------------------------------------------------------------------------------- /resources/rules/A13_Property_Domains/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :Alices-Adventures-In-Wonderland :author :Lewis-Carroll. 11 | 12 | 13 | -------------------------------------------------------------------------------- /resources/rules/A14_Property_Ranges/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :Alices-Adventures-In-Wonderland :author :Lewis-Carroll. 11 | 12 | 13 | -------------------------------------------------------------------------------- /resources/rules/A15_Class-Specific_Property_Range/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :Alices-Adventures-In-Wonderland :author :Lewis-Carroll. 11 | :Alices-Adventures-In-Wonderland a :Book. 12 | 13 | 14 | -------------------------------------------------------------------------------- /resources/rules/A16_Data_Property_Facets/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :myAwsomeResearch a :Study; 11 | :abstract "a"; :number 2. 12 | 13 | 14 | -------------------------------------------------------------------------------- /resources/rules/A17_Literal_Ranges/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :something a :Spatial-Feature ; 11 | :latitude "99"^^xsd:nonNegativeInteger . 12 | 13 | 14 | -------------------------------------------------------------------------------- /resources/rules/A18_Negative_Literal_Ranges/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :something a :Spatial-Feature ; 11 | :latitude "190"^^xsd:nonNegativeInteger . 12 | 13 | 14 | -------------------------------------------------------------------------------- /resources/rules/A19_IRI_Pattern_Matching/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :HarryPotter a :Semantic-Web-Book . 11 | 12 | 13 | -------------------------------------------------------------------------------- /resources/rules/A1_Functional_Properties/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @base . 6 | 7 | 8 | 9 | :Tom_Sawyer a :Book. 10 | :Tom_Sawyer :isbn "1234". 11 | :Tom_Sawyer :isbn "5678". 12 | -------------------------------------------------------------------------------- /resources/rules/A20_Literal_Pattern_Matching/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :HarryPotter a :Book; 11 | :isbn "123456789X_ERROR"^^xsd:string . 12 | 13 | 14 | -------------------------------------------------------------------------------- /resources/rules/A21_Negative_Literal_Pattern_Matching/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :HarryPotter a :Journal ; 11 | :issn "ISBN013—010"^^xsd:string . 12 | 13 | 14 | -------------------------------------------------------------------------------- /resources/rules/A22_Existential_Quantifications/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :The-Hound-Of-The-Baskervilles a :Book . 11 | 12 | 13 | -------------------------------------------------------------------------------- /resources/rules/A23_Universal_Quantifications/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :The-Lord-Of-The-Rings :author :Tolkien; 11 | a :Publication. 12 | 13 | -------------------------------------------------------------------------------- /resources/rules/A24_Value_Restrictions/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :LearnYouaHaskellforGreatGood a :Computer-Science-Book; :subject :Biology. 11 | 12 | -------------------------------------------------------------------------------- /resources/rules/A26_Negative_Property_Constraints/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | 11 | :HarryPotter a :Book; :issn "1234". 12 | -------------------------------------------------------------------------------- /resources/rules/A27_Language_Tag_Matching/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | 11 | :Belgium a :Country; :germanLabel "Belgium"@en. 12 | -------------------------------------------------------------------------------- /resources/rules/A28_Language_Tag_Cardinality/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | 11 | :HarryPotter a :Book; :title "Harry Potter"@en, "The adventures of Harry Potter"@en. 12 | -------------------------------------------------------------------------------- /resources/rules/A2_Inverse-Functional_Properties/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix adms: . 6 | @base . 7 | 8 | 9 | 10 | :A adms:identifier :id. 11 | :B adms:identifier :id. 12 | -------------------------------------------------------------------------------- /resources/rules/A32_Minimum_Unqualified_Cardinality_Restrictions/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :HarryPotter a :Computer-Science-Book. 11 | -------------------------------------------------------------------------------- /resources/rules/A33_Minimum_Qualified_Cardinality_Restrictions/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :HarryPotter a :Publication; :author :JKRowling. 11 | 12 | -------------------------------------------------------------------------------- /resources/rules/A34_Maximum_Unqualified_Cardinality_Restrictions/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :Schmidt a :Non-Bestseller-Author; :sellsBooks :Book1, :Book2, :Book3. 11 | 12 | -------------------------------------------------------------------------------- /resources/rules/A35_Maximum_Qualified_Cardinality_Restrictions/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :Max a :Child; :childOf :Tom, :Mary, :Jane. 11 | :Tom a :Parent. 12 | :Mary a :Parent. 13 | :Jane a :Parent. 14 | 15 | -------------------------------------------------------------------------------- /resources/rules/A37_Exact_Qualified_Cardinality_Restrictions/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :Max a :Person; :childOf :Tom, :Mary, :Jane. 11 | :Tom a :Parent. 12 | :Mary a :Parent. 13 | :Jane a :Parent. 14 | 15 | -------------------------------------------------------------------------------- /resources/rules/A3_Primary_Key_Properties/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @base . 6 | 7 | 8 | 9 | :Tom_Sawyer a :Book. 10 | :Tom_Sawyer :isbn "1234". 11 | 12 | :Treasure_Island a :Book. 13 | :Treasure_Island :isbn "1234". 14 | -------------------------------------------------------------------------------- /resources/rules/A41_Required_Properties/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :HarryPotter a :Publication. 11 | -------------------------------------------------------------------------------- /resources/rules/A42_Optional_Properties/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :HarryPotter a :Book. 11 | :LordOfTheRings a :Book; 12 | :doi "123" . 13 | -------------------------------------------------------------------------------- /resources/rules/A45_Recommended_Properties/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :HarryPotter a :Publication. 11 | 12 | :LordOfTheRings a :Publication ; 13 | :numberOfPages 854 . 14 | -------------------------------------------------------------------------------- /resources/rules/A4_Subsumption/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/resources/rules/A4_Subsumption/.gitkeep -------------------------------------------------------------------------------- /resources/rules/A4_Subsumption/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @base . 6 | 7 | 8 | 9 | :Tom_Sawyer a :Book. 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /resources/rules/A57_Asymmetric_Object_Properties/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | 11 | :JKRowling :authorOf :HarryPotter. 12 | :HarryPotter :authorOf :JKRowling. 13 | -------------------------------------------------------------------------------- /resources/rules/A5_Sub-Properties/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @base . 6 | 7 | 8 | 9 | :JournalA :editor :Eddi_Editor. 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /resources/rules/A64_Irreflexive_Object_Properties/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | 11 | :HarryPotter :authorOf :HarryPotter. 12 | -------------------------------------------------------------------------------- /resources/rules/A69_Disjoint_Properties/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | 11 | :HarryPotter :title "Harry Potter". 12 | :HarryPotter :author "Harry Potter". 13 | -------------------------------------------------------------------------------- /resources/rules/A6_Object_Property_Paths/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @base . 6 | 7 | 8 | 9 | :Stephen_Hawking :authorOf :A-Brief-History-Of-Time . 10 | :A-Brief-History-Of-Time :genre :Popular-Science. 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /resources/rules/A70_Disjoint_Classes/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | 11 | :The_Semantic_Web a :Journal-Article. 12 | :The_Semantic_Web a :Book. 13 | -------------------------------------------------------------------------------- /resources/rules/A78_Conjunction/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :Alice a :Mother, :Female, :Parent. 11 | 12 | :Carol a :Mother, :Parent. 13 | -------------------------------------------------------------------------------- /resources/rules/A7_Allowed_Values/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @base . 6 | 7 | 8 | 9 | :Tom_Sawyer a :Computer-Science-Book; 10 | :subject :Fiction. 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /resources/rules/A80_Negation/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :HarryPotter a :Publication-Not-Book. 11 | 12 | :LordOfTheRings a :Publication-Not-Book ; 13 | a :Book . 14 | -------------------------------------------------------------------------------- /resources/rules/A81_Default_Values/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | :HarryPotter a :Book. 11 | -------------------------------------------------------------------------------- /resources/rules/A8_Not_Allowed_Values/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @base . 6 | 7 | 8 | 9 | :BookA a :Computer-Science-Book; 10 | :subject :Economic-Sciences. 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /resources/rules/A9_Class_Equivalence/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @base . 6 | 7 | 8 | 9 | #:Ben a :Human. 10 | 11 | :Ben a :Person. 12 | -------------------------------------------------------------------------------- /resources/rules/B1_PVT_Pattern/data.ttl: -------------------------------------------------------------------------------- 1 | @prefix rdfcv: . 2 | @prefix rdfs: . 3 | @prefix dcterms: . 4 | @prefix : . 5 | @prefix xsd: . 6 | @prefix dbc: . 7 | @base . 8 | 9 | 10 | 11 | :MarkTwain dbc:1835_births. 12 | -------------------------------------------------------------------------------- /resources/rules/reasoning/rdfsSubClassOf.n3: -------------------------------------------------------------------------------- 1 | prefix rdfs: 2 | 3 | ########################### 4 | #rules for rdfs:subclass 5 | ######################### 6 | {?C rdfs:subClassOf ?D. ?X a ?C} => {?X a ?D}. 7 | -------------------------------------------------------------------------------- /resources/testontology.ttl: -------------------------------------------------------------------------------- 1 | @prefix : . 2 | @prefix owl: . 3 | @prefix foaf: . 4 | 5 | :child a owl:AsymmetricObjectProperty . 6 | :child a owl:IrreflexiveObjectProperty . 7 | :Person :typedep foaf:Person . 8 | :Person2 :typrodep foaf:name . 9 | -------------------------------------------------------------------------------- /test/EyeHandlerSpec.js: -------------------------------------------------------------------------------- 1 | /* global describe, it */ 2 | 3 | /** 4 | * Created by bjdmeest on 29/10/2015. 5 | */ 6 | const expect = require('chai').expect, 7 | EyeHandler = require('../lib/EyeHandler'); 8 | 9 | describe('EyeHandler', function () { 10 | const handler = new EyeHandler(); 11 | describe('reason', function () { 12 | it('should work', function (done) { 13 | handler.reason([{key: '--nope'}], null, null, function (err, out) { 14 | expect(err).to.be.null; 15 | done(); 16 | }); 17 | }); 18 | }); 19 | }); -------------------------------------------------------------------------------- /test/bugs/correct.01.out.ttl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/test/bugs/correct.01.out.ttl -------------------------------------------------------------------------------- /test/bugs/correct.02.out.ttl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/test/bugs/correct.02.out.ttl -------------------------------------------------------------------------------- /test/owl/INVFUNC_Correct.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample correct data for testing 9 | 10 | 11 | ex:correct1 a ex:Athlete ; 12 | ex:homepage ex:abcd . 13 | 14 | ex:correct1 a ex:Athlete ; 15 | ex:homepage ex:abcddf . 16 | -------------------------------------------------------------------------------- /test/owl/INVFUNC_Wrong.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample wrong data for testing 9 | 10 | ex:error1 a ex:Athlete ; 11 | ex:homepage ex:abcd . 12 | 13 | ex:error2 a ex:Person ; 14 | ex:homepage ex:abcd . # should be unique 2 error (1 for both resources) 15 | -------------------------------------------------------------------------------- /test/owl/OWLDISJC_Correct.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample wrong data for testing 9 | 10 | 11 | ex:correct1 a ex:Person . 12 | ex:correct2 a ex:Work . 13 | ex:correct3 a ex:PopulatedPlace. 14 | -------------------------------------------------------------------------------- /test/owl/RDFLANGSTRING_Correct.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample correct data for testing 9 | 10 | 11 | ex:correct1 ex:langStringProperty 12 | "asdf"@en , 13 | "asdf"@de , 14 | "sdfg"@it . -------------------------------------------------------------------------------- /test/owl/RDFLANGSTRING_Wrong.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample correct data for testing 9 | 10 | 11 | ex:correct1 ex:langStringProperty 12 | "asdf" , # 1 error 13 | "asdf"@de , 14 | "sdfg"@it , 15 | ex:someValue . # 1 error (checked with isLiteral generator) -------------------------------------------------------------------------------- /test/owl/RDFSRANGED_Correct.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample correct data for testing 9 | 10 | 11 | ex:correct1 a ex:Athlete ; 12 | ex:name "john doe"@en ; 13 | ex:name "john doe" ; 14 | ex:age "25"^^xsd:nonNegativeInteger ; 15 | ex:birthDate "2014-08-21"^^xsd:date 16 | . 17 | -------------------------------------------------------------------------------- /test/owl/RDFSRANGED_Wrong.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample wrong data for testing 9 | 10 | ex:error1 a ex:Athlete ; 11 | ex:name "2014-08-21"^^xsd:date ; # 1 error ## TODO fix this one (we skip xsd:string) 12 | ex:age "25" ; # 1 error 13 | ex:birthDate "2014-08-21" # 1 error 14 | . -------------------------------------------------------------------------------- /test/owl/RDFSRANGE_Wrong.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample wrong data for testing 9 | 10 | ex:error1 a ex:Athlete ; 11 | ex:livesIn ex:Athens . # wrong range 1 error 12 | 13 | ex:Athens a ex:Work . 14 | 15 | ex:error2 ex:multRanges ex:Athens . # 1 error TODO not supported yet (multiple range) -------------------------------------------------------------------------------- /test/owl/RDFSRANG_LIT_Wrong.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample wrong data for testing 9 | 10 | ex:error1 11 | ex:nonLiteralP1 "25" ; # 1 error 12 | . 13 | 14 | ex:error2 15 | ex:literalP1 ; # 1 error 16 | ex:literalP2 ; # 1 error 17 | . -------------------------------------------------------------------------------- /tests/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | mf:include ; 8 | mf:include ; 9 | . 10 | -------------------------------------------------------------------------------- /tests/owl-rdfunit/invfunc_correct.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample correct data for testing 9 | 10 | 11 | ex:correct1 a ex:Athlete ; 12 | ex:homepage ex:abcd . 13 | 14 | ex:correct1 a ex:Athlete ; 15 | ex:homepage ex:abcddf . 16 | -------------------------------------------------------------------------------- /tests/owl-rdfunit/invfunc_wrong.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample wrong data for testing 9 | 10 | ex:error1 a ex:Athlete ; 11 | ex:homepage ex:abcd . 12 | 13 | ex:error2 a ex:Person ; 14 | ex:homepage ex:abcd . # should be unique 2 error (1 for both resources) 15 | -------------------------------------------------------------------------------- /tests/owl-rdfunit/output_correct.ttl: -------------------------------------------------------------------------------- 1 | PREFIX : 2 | 3 | :errorCount :count 0 . 4 | -------------------------------------------------------------------------------- /tests/owl-rdfunit/output_wrong_1.ttl: -------------------------------------------------------------------------------- 1 | PREFIX : 2 | 3 | :errorCount :count 1 . 4 | -------------------------------------------------------------------------------- /tests/owl-rdfunit/output_wrong_2.ttl: -------------------------------------------------------------------------------- 1 | PREFIX : 2 | 3 | :errorCount :count 2 . 4 | -------------------------------------------------------------------------------- /tests/owl-rdfunit/output_wrong_3.ttl: -------------------------------------------------------------------------------- 1 | PREFIX : 2 | 3 | :errorCount :count 3 . 4 | -------------------------------------------------------------------------------- /tests/owl-rdfunit/output_wrong_6.ttl: -------------------------------------------------------------------------------- 1 | PREFIX : 2 | 3 | :errorCount :count 6 . 4 | -------------------------------------------------------------------------------- /tests/owl-rdfunit/owldisjc_correct.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample wrong data for testing 9 | 10 | 11 | ex:correct1 a ex:Person . 12 | ex:correct2 a ex:Work . 13 | ex:correct3 a ex:PopulatedPlace. 14 | -------------------------------------------------------------------------------- /tests/owl-rdfunit/rdflangstring_correct.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample correct data for testing 9 | 10 | 11 | ex:correct1 ex:langStringProperty 12 | "asdf"@en , 13 | "asdf"@de , 14 | "sdfg"@it . -------------------------------------------------------------------------------- /tests/owl-rdfunit/rdflangstring_wrong.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample correct data for testing 9 | 10 | 11 | ex:correct1 ex:langStringProperty 12 | "asdf" , # 1 error 13 | "asdf"@de , 14 | "sdfg"@it , 15 | ex:someValue . # 1 error (checked with isLiteral generator) -------------------------------------------------------------------------------- /tests/owl-rdfunit/rdfsranged_correct.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample correct data for testing 9 | 10 | 11 | ex:correct1 a ex:Athlete ; 12 | ex:name "john doe"@en ; 13 | ex:name "john doe" ; 14 | ex:age "25"^^xsd:nonNegativeInteger ; 15 | ex:birthDate "2014-08-21"^^xsd:date 16 | . 17 | -------------------------------------------------------------------------------- /tests/owl-rdfunit/rdfsranged_wrong.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | @prefix xsd: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix owl: . 7 | 8 | # Sample wrong data for testing 9 | 10 | ex:error1 a ex:Athlete ; 11 | ex:name "2014-08-21"^^xsd:date ; # 1 error ## TODO fix this one (we skip xsd:string) 12 | ex:age "25" ; # 1 error 13 | ex:birthDate "2014-08-21" # 1 error 14 | . -------------------------------------------------------------------------------- /tests/shacl/core/complex/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/complex" ; 8 | mf:include ; 9 | mf:include ; 10 | . -------------------------------------------------------------------------------- /tests/shacl/core/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | mf:include ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | mf:include ; 14 | . -------------------------------------------------------------------------------- /tests/shacl/core/misc/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/misc" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | . -------------------------------------------------------------------------------- /tests/shacl/core/node/qualified-001-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:i a ex:C1 . 4 | ex:j a ex:C1 , ex:C2 . 5 | -------------------------------------------------------------------------------- /tests/shacl/core/node/qualified-001-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix xsd: . 2 | @prefix sh: . 3 | @prefix ex: . 4 | 5 | ex:s1 a sh:NodeShape ; 6 | sh:targetClass ex:C1 ; 7 | sh:class ex:C2 ; 8 | sh:qualifiedValueShapesDisjoint "1"^^xsd:boolean ; 9 | sh:qualifiedMinCount 5 ; 10 | sh:qualifiedMaxCount 2 . 11 | -------------------------------------------------------------------------------- /tests/shacl/core/node/xone-duplicate-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:i a ex:C1 . 4 | ex:j a ex:C1 , ex:C2 . 5 | -------------------------------------------------------------------------------- /tests/shacl/core/node/xone-duplicate-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | 4 | ex:s1 a sh:NodeShape ; 5 | sh:targetClass ex:C1 ; 6 | sh:xone ( ex:s2 ex:s2 ) . 7 | ex:s2 sh:class ex:C2 . 8 | -------------------------------------------------------------------------------- /tests/shacl/core/path/path-complex-002-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:j ex:p ex:i . 4 | 5 | ex:k ex:p ex:j . 6 | 7 | ex:l ex:p ex:j . 8 | -------------------------------------------------------------------------------- /tests/shacl/core/path/path-complex-002-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | 4 | ex:s1 a sh:PropertyShape ; 5 | sh:targetNode ex:i ; 6 | sh:path ( _:pinv _:pinv ) ; 7 | sh:class ex:C . 8 | 9 | _:pinv sh:inversePath ex:p . 10 | 11 | ex:s2 a sh:PropertyShape ; 12 | sh:targetNode ex:i ; 13 | sh:path ( [ sh:inversePath ex:p ] [ sh:inversePath ex:p ] ) ; 14 | sh:class ex:C . 15 | -------------------------------------------------------------------------------- /tests/shacl/core/path/path-unused-001-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:i a ex:C . 4 | 5 | ex:j a ex:D . 6 | -------------------------------------------------------------------------------- /tests/shacl/core/path/path-unused-001-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | 6 | ex:s1 a sh:NodeShape ; 7 | sh:targetNode ex:j, ex:i ; 8 | sh:class ex:C . 9 | 10 | _:p1 sh:inversePath _:p2 . 11 | 12 | _:p2 sh:zeroOrMorePath ( _:p2 ) . 13 | 14 | _:p2 sh:zeroOrOnePath [ rdf:rest rdf:nil ] . 15 | 16 | _:p3 sh:alternativePath ( ex:p ) ; 17 | rdfs:comment "invalid path" . 18 | 19 | -------------------------------------------------------------------------------- /tests/shacl/core/property/datatype-ill-formed-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix xsd: . 2 | @prefix ex: . 3 | 4 | ex:i ex:p "300"^^xsd:byte . 5 | ex:i ex:p "55"^^xsd:integer . 6 | ex:i ex:p "c"^^xsd:byte . 7 | -------------------------------------------------------------------------------- /tests/shacl/core/property/datatype-ill-formed-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix xsd: . 3 | @prefix ex: . 4 | 5 | ex:s a sh:PropertyShape ; 6 | sh:targetNode ex:i ; 7 | sh:path ex:p ; 8 | sh:datatype xsd:byte . 9 | -------------------------------------------------------------------------------- /tests/shacl/core/property/uniqueLang-002-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:i ex:message "HI"@en, "Hi"@en . 4 | -------------------------------------------------------------------------------- /tests/shacl/core/property/uniqueLang-002-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | @prefix xsd: . 4 | 5 | ex:s1 a sh:PropertyShape ; 6 | sh:targetNode ex:i ; 7 | sh:path ex:message ; 8 | sh:uniqueLang "1"^^xsd:boolean . 9 | -------------------------------------------------------------------------------- /tests/shacl/core/validation-reports/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests for validation reports" ; 8 | mf:include ; 9 | . 10 | -------------------------------------------------------------------------------- /tests/shacl/core/validation-reports/shared-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | ex:i ex:p ex:j . 3 | ex:i ex:q ex:j . 4 | ex:j ex:r ex:k . 5 | -------------------------------------------------------------------------------- /tests/shacl/core/validation-reports/shared-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | 4 | ex:s1 a sh:NodeShape ; 5 | sh:targetNode ex:i ; 6 | sh:property ex:s2 ; 7 | sh:property ex:s3 . 8 | 9 | ex:s2 sh:path ex:p ; 10 | sh:property ex:s4 . 11 | 12 | ex:s3 sh:path ex:q ; 13 | sh:property ex:s4 . 14 | 15 | ex:s4 sh:path ex:r ; 16 | sh:class ex:C . 17 | -------------------------------------------------------------------------------- /tests/shacl/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | mf:include ; 8 | # mf:include ; 9 | . 10 | -------------------------------------------------------------------------------- /tests/shacl/sparql/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | mf:include ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | . 12 | -------------------------------------------------------------------------------- /tests/shacl/sparql/node/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/sparql/node" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | . -------------------------------------------------------------------------------- /tests/shacl/sparql/property/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/sparql/property" ; 8 | mf:include ; 9 | . -------------------------------------------------------------------------------- /tmp/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDLabResearch/validatrr/858360b5ffe979f98bfa2ccbfc2979c2165d33e0/tmp/.gitkeep -------------------------------------------------------------------------------- /views/error.pug: -------------------------------------------------------------------------------- 1 | extends layout 2 | 3 | block content 4 | h1= error.status 5 | h2= message 6 | pre #{error.stack} 7 | -------------------------------------------------------------------------------- /views/index.pug: -------------------------------------------------------------------------------- 1 | extends layout 2 | 3 | block content 4 | h1 Mapping validation 5 | 6 |
7 | Select mapping file to upload: 8 | 9 | 10 |
11 | -------------------------------------------------------------------------------- /views/layout.pug: -------------------------------------------------------------------------------- 1 | doctype html 2 | html 3 | head 4 | title= title 5 | link(rel='stylesheet', href='/stylesheets/style.css') 6 | body 7 | block content 8 | --------------------------------------------------------------------------------