{"id":1997,"date":"2006-07-19T09:53:00","date_gmt":"2006-07-19T09:53:00","guid":{"rendered":"http:\/\/www.leobard.net\/blog\/?p=1997"},"modified":"2017-11-04T15:48:12","modified_gmt":"2017-11-04T15:48:12","slug":"validating-ontologies-in-gnowsis-and-named-graphs-for-provenance","status":"publish","type":"post","link":"https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/","title":{"rendered":"Validating ontologies in Gnowsis and Named Graphs for provenance"},"content":{"rendered":"<p>In the latest SVN version of <a href=\"http:\/\/gnowsis.opendfki.de\">gnowsis<\/a>, we have various improvements on handling ontologies, validating them and so on.<\/p>\n<p>All information about that is here: <\/p>\n<ul>\n<li><a href=\"gnowsis.opendfki.de\/wiki\/PimoService\">http:\/\/gnowsis.opendfki.de\/wiki\/PimoService<\/a><\/li>\n<\/ul>\n<h1 id=\"ManagingDomainOntologies\">Managing Domain Ontologies<\/h1>\n<p>\nAdding ontologies, removing ontologies, updating ontologies is implemented in the <a class=\"wiki\">PimoService<\/a>. A convenient interface to these functions is implemented in the web-gui:\n<\/p>\n<ul>\n<li><a class=\"ext-link\" href=\"http:\/\/127.0.0.1:9993\/gnowsis-server\/ontologies.jsp\"><span class=\"icon\"><\/span>http:\/\/127.0.0.1:9993\/gnowsis-server\/ontologies.jsp<\/a> &#8211; ontology management interface in your gnowsis\n<\/li>\n<\/ul>\n<p>\n<strong>A list of ontologies that work with gnowsis is at <a class=\"wiki\">DomainOntologies<\/a>.<\/strong>\n<\/p>\n<p>\nThe implementation of Domain Ontologies is done using named graphs in sesame.<br \/>\nread on at <a class=\"wiki\" href=\"\/wiki\/PimoStorage#NamedgraphsandontologiesinthePIMOStorage\">Named graphs in Pimo<\/a>.<\/p>\n<p>\nDomain ontologies are added\/deleted\/updated using methods of the <a class=\"wiki\">PimoService<\/a>.<br \/>\nYou can interact directly with the triples of an ontology in the store, but you have to care for inference and the correct context yourself then.\n<\/p>\n<h1 id=\"ValidationofPIMOModelsPimoChecker\">Validation of PIMO Models &#8211; PimoChecker<\/h1>\n<p>\nThe semantics of the PIMO language allow us to verify the integrity of the data. In normal RDF\/S semantics, verification is not possible. For example, setting the domain of the property knows to the class Person, and then using this property on an instance Rome Business Plan of class Document creates, using RDF\/S, the new information that the Document is also a Person. In the PIMO language, domain and range restrictions are used to validate the data. <br \/>\nThe PIMO is checked using a Java Object called <a class=\"missing wiki\" rel=\"nofollow\">PimoChecker?<\/a>, that encapsulates a Jena reasonser to do the checking and also does more tricks:\n<\/p>\n<ul>\n<li><a class=\"source\" href=\"\/browser\/branches\/gnowsis0.9\/gnowsis-server\/src\/java\/org\/gnowsis\/pimo\/impl\/PimoChecker.java\">source:branches\/gnowsis0.9\/gnowsis-server\/src\/java\/org\/gnowsis\/pimo\/impl\/PimoChecker.java<\/a>\n<\/li>\n<\/ul>\n<p>\nThe following rules describe what is validated in the PIMO, a formal description is given in the gnowsis implementation&#8217;s PIMO rule file.<\/p>\n<ul>\n<li>All relating properties need inverse properties.\n<\/li>\n<li>Check domain and range of relating and describing properties.\n<\/li>\n<li>Check domain and range for rdf:type statements\n<\/li>\n<li>Cardinality restrictions using the protege statements\n<\/li>\n<li>Rdfs:label is mandatory for instances of \u201dThing\u201d and classes\n<\/li>\n<li>Every resource that is used as object of a triple has to have a rdf:type set. This is a prerequisite for checking domains and ranges.\n<\/li>\n<\/ul>\n<p>\nAbove rules are checking semantic modeling errors, that are based on errors made by programmers or human users. <br \/>\nFollowing are rules that check if the inference engine correctly created the closure of the model: \u2013\n<\/p>\n<ul>\n<li>All statements that have a predicate that has an inverse defined require another triple in the model representing the inverse statement.\n<\/li>\n<\/ul>\n<p>\nThe rules work only, when the language constructs and upper ontology are part of the model that is validated. For example, validating Paul\u2019s PIMO is only possible when the PIMO-Basic and PIMO-Upper is available to the inference engine, otherwise the definition of the basic classes and properties are missing. The validation can be used to restrict updates to the data model in a way that only valid data can be stored into the database. Or, the model can be validated on a regular basis after the changes were made. In the gnowsis prototype, validation was activated during automatic tests of the system, to verify that the software generates valid data in different situations. Ontologies are also validated during import to the ontology store. Before validating a new ontology, it\u2019s import declarations have to be satisfied. The test begins by building a temporal ontology model, where first the ontology under test and then all imported ontologies are added. If an import cannot be satisfied, because the required ontology is not already part of the system, either the missing part could be fetched from the internet using the ontology identifier as URL, or the user can be prompted to import the missing part first. When all imports are satisfied, the new ontology under test is validated and added to the system. A common mistake at this point is to omit the PIMO-Basic and PIMO-Upper import declarations. By using this strict testing of ontologies, conceptual errors show at an early stage. Strict usage of import-declarations makes dependencies between ontologies explicit, whereas current best practice in the RDF\/S based semantic web community has many implicit imports that are often not leveraged.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the latest SVN version of gnowsis, we have various improvements on handling ontologies, validating them and so on. All information about that is here: http:\/\/gnowsis.opendfki.de\/wiki\/PimoService Managing Domain Ontologies Adding ontologies, removing ontologies, updating ontologies is implemented in the PimoService. A convenient interface to these functions is implemented in the web-gui: http:\/\/127.0.0.1:9993\/gnowsis-server\/ontologies.jsp &#8211; ontology management &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Validating ontologies in Gnowsis and Named Graphs for provenance&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bluesky_dont_syndicate":"","_bluesky_syndication_accounts":"","_bluesky_syndication_text":"","activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[5],"tags":[],"class_list":["post-1997","post","type-post","status-publish","format-standard","hentry","category-semweb"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Validating ontologies in Gnowsis and Named Graphs for provenance - Leobard&#039;s blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Validating ontologies in Gnowsis and Named Graphs for provenance - Leobard&#039;s blog\" \/>\n<meta property=\"og:description\" content=\"In the latest SVN version of gnowsis, we have various improvements on handling ontologies, validating them and so on. All information about that is here: http:\/\/gnowsis.opendfki.de\/wiki\/PimoService Managing Domain Ontologies Adding ontologies, removing ontologies, updating ontologies is implemented in the PimoService. A convenient interface to these functions is implemented in the web-gui: http:\/\/127.0.0.1:9993\/gnowsis-server\/ontologies.jsp &#8211; ontology management &hellip; Continue reading &quot;Validating ontologies in Gnowsis and Named Graphs for provenance&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/\" \/>\n<meta property=\"og:site_name\" content=\"Leobard&#039;s blog\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/leobard\" \/>\n<meta property=\"article:published_time\" content=\"2006-07-19T09:53:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-11-04T15:48:12+00:00\" \/>\n<meta name=\"author\" content=\"leobard\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"leobard\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/07\\\/19\\\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/07\\\/19\\\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\\\/\"},\"author\":{\"name\":\"leobard\",\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/#\\\/schema\\\/person\\\/23f718c5d3bd8d343befaa1b11bdc609\"},\"headline\":\"Validating ontologies in Gnowsis and Named Graphs for provenance\",\"datePublished\":\"2006-07-19T09:53:00+00:00\",\"dateModified\":\"2017-11-04T15:48:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/07\\\/19\\\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\\\/\"},\"wordCount\":687,\"commentCount\":0,\"articleSection\":[\"SemWeb\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/07\\\/19\\\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/07\\\/19\\\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\\\/\",\"url\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/07\\\/19\\\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\\\/\",\"name\":\"Validating ontologies in Gnowsis and Named Graphs for provenance - Leobard&#039;s blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/#website\"},\"datePublished\":\"2006-07-19T09:53:00+00:00\",\"dateModified\":\"2017-11-04T15:48:12+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/#\\\/schema\\\/person\\\/23f718c5d3bd8d343befaa1b11bdc609\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/07\\\/19\\\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/07\\\/19\\\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/2006\\\/07\\\/19\\\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Validating ontologies in Gnowsis and Named Graphs for provenance\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/\",\"name\":\"Leobard&#039;s blog\",\"description\":\"personal weblog of Leo Sauermann\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/#\\\/schema\\\/person\\\/23f718c5d3bd8d343befaa1b11bdc609\",\"name\":\"leobard\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4f15ee76fffcb732371d121c4713809a3f075186c6223630d4fe6c82ae88166d?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4f15ee76fffcb732371d121c4713809a3f075186c6223630d4fe6c82ae88166d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4f15ee76fffcb732371d121c4713809a3f075186c6223630d4fe6c82ae88166d?s=96&d=mm&r=g\",\"caption\":\"leobard\"},\"description\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/about-leo-sauermann\\\/\",\"sameAs\":[\"https:\\\/\\\/www.leobard.net\\\/\",\"https:\\\/\\\/www.facebook.com\\\/leobard\",\"https:\\\/\\\/www.instagram.com\\\/leobarder\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/leosauermann\\\/\"],\"url\":\"https:\\\/\\\/www.leobard.net\\\/blog\\\/author\\\/leobard\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Validating ontologies in Gnowsis and Named Graphs for provenance - Leobard&#039;s blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/","og_locale":"en_US","og_type":"article","og_title":"Validating ontologies in Gnowsis and Named Graphs for provenance - Leobard&#039;s blog","og_description":"In the latest SVN version of gnowsis, we have various improvements on handling ontologies, validating them and so on. All information about that is here: http:\/\/gnowsis.opendfki.de\/wiki\/PimoService Managing Domain Ontologies Adding ontologies, removing ontologies, updating ontologies is implemented in the PimoService. A convenient interface to these functions is implemented in the web-gui: http:\/\/127.0.0.1:9993\/gnowsis-server\/ontologies.jsp &#8211; ontology management &hellip; Continue reading \"Validating ontologies in Gnowsis and Named Graphs for provenance\"","og_url":"https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/","og_site_name":"Leobard&#039;s blog","article_author":"https:\/\/www.facebook.com\/leobard","article_published_time":"2006-07-19T09:53:00+00:00","article_modified_time":"2017-11-04T15:48:12+00:00","author":"leobard","twitter_card":"summary_large_image","twitter_misc":{"Written by":"leobard","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/#article","isPartOf":{"@id":"https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/"},"author":{"name":"leobard","@id":"https:\/\/www.leobard.net\/blog\/#\/schema\/person\/23f718c5d3bd8d343befaa1b11bdc609"},"headline":"Validating ontologies in Gnowsis and Named Graphs for provenance","datePublished":"2006-07-19T09:53:00+00:00","dateModified":"2017-11-04T15:48:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/"},"wordCount":687,"commentCount":0,"articleSection":["SemWeb"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/","url":"https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/","name":"Validating ontologies in Gnowsis and Named Graphs for provenance - Leobard&#039;s blog","isPartOf":{"@id":"https:\/\/www.leobard.net\/blog\/#website"},"datePublished":"2006-07-19T09:53:00+00:00","dateModified":"2017-11-04T15:48:12+00:00","author":{"@id":"https:\/\/www.leobard.net\/blog\/#\/schema\/person\/23f718c5d3bd8d343befaa1b11bdc609"},"breadcrumb":{"@id":"https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.leobard.net\/blog\/2006\/07\/19\/validating-ontologies-in-gnowsis-and-named-graphs-for-provenance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.leobard.net\/blog\/"},{"@type":"ListItem","position":2,"name":"Validating ontologies in Gnowsis and Named Graphs for provenance"}]},{"@type":"WebSite","@id":"https:\/\/www.leobard.net\/blog\/#website","url":"https:\/\/www.leobard.net\/blog\/","name":"Leobard&#039;s blog","description":"personal weblog of Leo Sauermann","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.leobard.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.leobard.net\/blog\/#\/schema\/person\/23f718c5d3bd8d343befaa1b11bdc609","name":"leobard","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4f15ee76fffcb732371d121c4713809a3f075186c6223630d4fe6c82ae88166d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4f15ee76fffcb732371d121c4713809a3f075186c6223630d4fe6c82ae88166d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4f15ee76fffcb732371d121c4713809a3f075186c6223630d4fe6c82ae88166d?s=96&d=mm&r=g","caption":"leobard"},"description":"https:\/\/www.leobard.net\/blog\/about-leo-sauermann\/","sameAs":["https:\/\/www.leobard.net\/","https:\/\/www.facebook.com\/leobard","https:\/\/www.instagram.com\/leobarder\/","https:\/\/www.linkedin.com\/in\/leosauermann\/"],"url":"https:\/\/www.leobard.net\/blog\/author\/leobard\/"}]}},"_links":{"self":[{"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/posts\/1997","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/comments?post=1997"}],"version-history":[{"count":1,"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/posts\/1997\/revisions"}],"predecessor-version":[{"id":2783,"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/posts\/1997\/revisions\/2783"}],"wp:attachment":[{"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/media?parent=1997"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/categories?post=1997"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.leobard.net\/blog\/wp-json\/wp\/v2\/tags?post=1997"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}