http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/css/style.css ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/css/style.css b/extras/rya.manual/src/main/webapp/css/style.css deleted file mode 100644 index 496901e..0000000 --- a/extras/rya.manual/src/main/webapp/css/style.css +++ /dev/null @@ -1,1588 +0,0 @@ -/** - * Copyright (C) 2009-2010 the original author or authors. - * See the notice.md file distributed with this work for additional - * information regarding copyright ownership. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -body { - margin: 0; - padding: 0; -} - -#cell-0-0 { background: white url( '../images/bg02-white-left-nogr.png' ) repeat-y right top; } -#cell-0-1 { height: 1em; width: 85%; } -#cell-0-2 { background: transparent url( '../images/bg02-white-right-nogr.png' ) repeat-y left top; } -#cell-1-0 { background: transparent url( '../images/bg.png' ) repeat-x top; } -#cell-1-1 { background: transparent url( '../images/bg02-blue-left.png' ) no-repeat right top; width:13px; } -#cell-1-2 { background: transparent url( '../images/bg.png' ) repeat-x top; width:85%; } -#banner { height: 80px; } -#cell-1-3 { background: transparent url( '../images/bg02-blue-right.png' ) no-repeat left top; width:13px; } -#cell-1-4 { background: transparent url( '../images/bg.png' ) repeat-x top; } -#cell-2-0 { background: white url( '../images/bg02-white-left-nogr.png' ) repeat-y right top; } -#cell-2-1 { height: 1em; width: 85%; } -#cell-2-2 { background: white url( '../images/bg02-white-right-nogr.png' ) repeat-y left top; } -#cell-3-0 { background: transparent url( '../images/bg.png' ) repeat-x top; } -#cell-3-1 { background: transparent url( '../images/bg02-blue-left.png' ) no-repeat right top; width:13px; } -#cell-3-2 { background: transparent url( '../images/bg.png' ) repeat-x top; width:85%; } -#cell-3-3 { background: transparent url( '../images/bg02-blue-right.png' ) no-repeat left top; width:13px; } -#cell-3-4 { background: transparent url( '../images/bg.png' ) repeat-x top; } -#cell-4-0 { background: white url( '../images/bg02-white-left-nogr.png' ) repeat-y right top; } -#cell-4-1 { height: 1em; width: 85%; } -#cell-4-2 { background: transparent url( '../images/bg02-white-right-nogr.png' ) repeat-y left top; } - -#banner { - margin: 0px 20px; - padding: 0px 50px 0px 50px; - font-size: 200%; - text-align: center; - background: transparent; -} -#top-menu { - margin: 0px 25px; - padding: 2px; - line-height: 100%; - font-family: Verdana, arial, sans-serif; - font-weight: bold; - font-size: 11px; - color: white; - line-height: 13px; - overflow: none; -} -#top-menu a:link, #top-menu a:visited { - color: #ffffff; - text-decoration: none; -} -#top-menu a:active, #top-menu a:hover { - color: #5b8fbe; - text-decoration: underline; -} -#top-menu sup img { - height: 0px; - width: 0px; -} - -#footer { - padding: 0px 50px 0px 50px; - min-height: 0em; - text-align: center; - color: white; - font-size: 65%; - font-family: Verdana, arial, sans-serif; -} -#site-footer { - margin: 5px; -} -#footer a:link, #footer a:visited { - color: white; - text-decoration: none; -} -#footer a:hover { - color: white; - text-decoration: underline; -} - -#wrapper-menu-page-right { - background: transparent url( '../images/left-box-right.png' ) repeat-y right; -} - -#wrapper-menu-page-bottom { - background: transparent url( '../images/left-box-bottom.png' ) no-repeat right bottom; -} - -#wrapper-menu-page-top { - background: transparent url( '../images/left-box-top.png' ) no-repeat right top; -} - -#menu-page { - width: 200px; - color: #5b8fbe; - font-family: Verdana, arial, sans-serif; - font-weight: bold; - margin: 0px; - padding: 17px 11px 17px 0px; - text-align: left; - margin-left: 0px; - line-height: 1em; -} - -#menu-page ul { - margin: 0; - padding: 0; - padding-left: 35px; - font-size: 75%; -} - -#menu-page h3 { - font-size: 75%; - text-transform: uppercase; - margin: 1em 0 0.3em 0; - color: #5b8fbe; - font-weight: normal; - letter-spacing: 0.15em; - background: url('../images/big-bullet.png') no-repeat 0pt; - background-position:left center; - margin-left:15px; - padding-left: 20px; - font-family: Verdana, arial, sans-serif; - font-weight: bold; -} - -#menu-page a:link, #menu-page a:visited { - color: black; -} - -#menu-page a:hover { - color: #5b8fbe; -} - -#content { - padding: 20px 0px 0px 0px; - display: block; - text-align: left; - height: 100%; - width: 100%; - color: black; -} - -h2 { - font-size: 110%; -} - -h3 { - font-size: 100%; -} - -a:link, a:visited { - color: #5b8fbe; - text-decoration: none; -} - -a:hover { - color: #666; - text-decoration: none; -} - - -table.align { - padding: 0px; - border: none; -} - -td.align { - padding: 0px; - border: none; -} - -/********************************************************************* - CSS Elements that are part of the confluence rendered xhtml - *********************************************************************/ -.wiki-content { - font-family: Verdana, arial, sans-serif; - font-size: 11px; - line-height: 16px; - color: #000000; - font-weight: normal; - padding-top: 10px; - padding-bottom: 10px; -} - -/* -** when this stylesheet is used for the Tiny MCE Wysiwyg editor's edit area, we can't -** use an id=PageContent or class=wiki-content, so we must -** set the body style to that used for PageContent, and p to that used for wiki-content. -*/ - -.monospaceInput { - font:12px monospace -} - -.wiki-content p, .commentblock p { - margin: 16px 0px 16px 0px; - padding: 0px; -} - -.wiki-content-preview { - padding: 5px; - border-left: 1px solid #3c78b5; - border-right: 1px solid #3c78b5; -} - -ul, ol { - margin-top: 2px; - margin-bottom: 2px; - padding-top: 0px; - padding-bottom: 0px; -} - -pre { - padding: 0px; - margin-top: 5px; - margin-left: 15px; - margin-bottom: 5px; - margin-right: 5px; - text-align: left; -} - -.helpheading { - font-weight: bold; - background-color: #D0D9BD; - border-bottom: 1px solid #3c78b5; - padding: 4px 4px 4px 4px; - margin: 0px; - margin-top: 10px; -} -.helpcontent { - padding: 4px 4px 20px 4px; - background-color: #f5f7f1; -} - -.code { - border: 1px dashed #3c78b5; - font-size: 11px; - font-family: Courier; - margin: 10px; - line-height: 13px; -} - -.focusedComment { - background: #ffffce; -} - -.commentBox, .focusedComment { - padding: 10px; - margin: 5px 0 5px 0; - border: 1px #bbb solid; -} - -.codeHeader { - background-color: #f0f0f0; - border-bottom: 1px dashed #3c78b5; - padding: 3px; - text-align: center; -} - -.codeContent { - text-align: left; - background-color: #f0f0f0; - padding: 3px; -} - -.preformatted { - border: 1px dashed #3c78b5; - font-size: 11px; - font-family: Courier; - margin: 10px; - line-height: 13px; -} - -.preformattedHeader { - background-color: #f0f0f0; - border-bottom: 1px dashed #3c78b5; - padding: 3px; - text-align: center; -} - -.preformattedContent { - background-color: #f0f0f0; - padding: 3px; -} - -.panel { - border: 1px dashed #3c78b5; - margin: 10px; - margin-top: 0px; -} - -.panelHeader { - background-color: #f0f0f0; - border-bottom: 1px dashed #3c78b5; - padding: 3px; - text-align: center; -} - -.panelContent { - background-color: #f0f0f0; - padding: 5px; -} - -.anonymousAlert { - background-color: #f0f0f0; - border: 1px dashed red; - font-size: 11px; - padding: 10px 5px 10px 5px; - margin: 4px; - line-height: 13px; -} - -.lockAlert { - background-color: #f0f0f0; - width: 50%; - border: 1px dashed red; - font-size: 11px; - padding: 10px 5px 10px 5px; - margin: 4px; - line-height: 13px; -} - - -.code-keyword { - color: #000091; - background-color: inherit; -} - -.code-object { - color: #910091; - background-color: inherit; -} - -.code-quote { - color: #009100; - background-color: inherit; -} - -.code-comment { - color: #808080; - background-color: inherit; -} - - -.code-xml .code-keyword { - color: inherit; - font-weight: bold; -} - -.code-tag { - color: #000091; - background-color: inherit; -} - -.breadcrumbs { - background-color: #f0f0f0; - border-color: #3c78b5; - border-width: 1px 0px 1px 0px; - border-style: solid; - font-size: 11px; - padding: 3px 0px 3px 0px; -} - -.navmenu { - border: 1px solid #ccc; -} - -.menuheading { - font-weight: bold; - background-color: #f0f0f0; - border-bottom: 1px solid #3c78b5; - padding: 4px 4px 2px 4px; -} - -.menuitems { - padding: 4px 4px 20px 4px; -} - -.rightpanel { - border-left: 1px solid #ccc; - border-bottom: 1px solid #ccc; -} - -#helpheading { - text-align: left; - font-weight: bold; - background-color: #D0D9BD; - border-bottom: 1px solid #3c78b5; - padding: 4px 4px 4px 4px; - margin: 0px; -} -#helpcontent { - padding: 4px 4px 4px 4px; - background-color: #f5f7f1; -} -.helptab-unselected { - font-weight: bold; - padding: 5px; - background-color: #f5f7f1; -} -.helptab-selected { - font-weight: bold; - background-color: #D0D9BD; - padding: 5px; -} -.helptabs { - margin: 0px; - background-color: #f5f7f1; - padding: 5px; -} -.infopanel-heading { - font-weight: bold; - padding: 4px 0px 2px 0px; -} - -.pagebody { -} - -.pageheader { - padding: 5px 5px 5px 0px; - border-bottom: 1px solid #3c78b5; -} - -.steptitle { - font-size: 18px; - font-weight: bold; - font-family: Arial, sans-serif; - color: #003366; - margin-bottom: 7px; -} - -.substeptitle { - font-size: 12px; - font-weight: bold; - font-family: Arial, sans-serif; - color: #003366; - margin: 2px 4px 4px 4px; - padding: 2px 4px 1px 4px; -} - -.stepdesc { - font-family: Verdana, arial, sans-serif; - font-size: 11px; - line-height: 16px; - font-weight: normal; - color: #666666; - margin-top: 7px; - margin-bottom: 7px; -} - -.steplabel { - font-weight: bold; - margin-right: 4px; - color: black; - float: left; - width: 15%; - text-align: right; -} - -.stepfield { - background: #f0f0f0; - padding: 5px; -} - -.submitButtons{ - margin-top:5px; - text-align:right; -} - -.formtitle { - font-size: 12px; - font-weight: bold; - font-family: Arial, sans-serif; - color: #003366; -} - -.sectionbottom { - border-bottom: 1px solid #3c78b5; -} - -.topRow { - border-top: 2px solid #3c78b5; -} - -.tabletitle { - font-size: 14px; - font-weight: bold; - font-family: Arial, sans-serif; - padding: 3px 0px 2px 0px; - margin: 8px 4px 2px 0px; - color: #003366; - border-bottom: 2px solid #3c78b5; -} -.pagesubheading { - color: #666666; - font-size: 10px; - padding: 0px 0px 5px 0px; -} - -HR { - color: 3c78b5; - height: 1; -} - -A:link, A:visited, A:active, A:hover { - color: #5b8fbe; -} - -A:hover { - text-decoration: underline; -} - -h1 A:link, h1 A:visited, h1 A:active { - text-decoration: none; -} - -h1 A:hover { - border-bottom: 1px dotted #003366; -} - -.wiki-content > :first-child, .commentblock > :first-child { - margin-top: 3px; -} - -.logocell { - padding: 10px; -} - -input { - font-family: verdana, geneva, arial, sans-serif; - font-size: 11px; - color: #000000; -} - -textarea, textarea.editor { - font-family: verdana, geneva, arial, sans-serif; - font-size: 11px; - color: #333333; -} - -/* use logoSpaceLink instead. -.spacenametitle { - font: 21px/31px Impact, Arial, Helvetica; - font-weight: 100; - color: #999999; - margin: 0px; -} -.spacenametitle img { - margin: 0 0 -4px 0; -} -.spacenametitle a { - text-decoration: none; - color: #999999; -} -.spacenametitle a:visited { - text-decoration: none; - color: #999999; -}*/ - -.spacenametitle-printable { - font: 20px/25px Impact, Arial, Helvetica; - font-weight: 100; - color: #999999; - margin: 0px; -} -.spacenametitle-printable a { - text-decoration: none; - color: #999999; -} -.spacenametitle-printable a:visited { - text-decoration: none; - color: #999999; -} - -.blogDate { - font-weight: bold; - text-decoration: none; - color: black; -} - -.blogSurtitle { - background: #f0f0f0; - border: 1px solid #ddd; - padding: 3px; - margin: 1px 1px 10px 1px; -} - -.blogHeading { - font-size: 20px; - line-height: normal; - font-weight: bold; - padding: 0px; - margin: 0px; -} - -.blogHeading a { - text-decoration: none; - color: black; -} - -.endsection { - align: right; - color: #666666; - margin-top: 10px; -} -.endsectionleftnav { - align: right; - color: #666666; - margin-top: 10px; -} - -h1 { - font-size: 24px; - line-height: normal; - font-weight: bold; - background-color: #f0f0f0; - color: #003366; - border-bottom: 1px solid #3c78b5; - padding: 2px; - margin: 36px 0px 4px 0px; -} - -h2 { - font-size: 18px; - line-height: normal; - font-weight: bold; - background-color: #f0f0f0; - border-bottom: 1px solid #3c78b5; - padding: 2px; - margin: 27px 0px 4px 0px; -} - -h3 { - font-size: 14px; - line-height: normal; - font-weight: bold; - background-color: #f0f0f0; - padding: 2px; - margin: 21px 0px 4px 0px; -} - -h4 { - font-size: 12px; - line-height: normal; - font-weight: bold; - background-color: #f0f0f0; - padding: 2px; - margin: 18px 0px 4px 0px; -} - -h4.search { - font-size: 12px; - line-height: normal; - font-weight: normal; - background-color: #f0f0f0; - padding: 4px; - margin: 18px 0px 4px 0px; -} - -h5 { - font-size: 10px; - line-height: normal; - font-weight: bold; - background-color: #f0f0f0; - padding: 2px; - margin: 14px 0px 4px 0px; -} - -h6 { - font-size: 8px; - line-height: normal; - font-weight: bold; - background-color: #f0f0f0; - padding: 2px; - margin: 14px 0px 4px 0px; -} - -.smallfont { - font-size: 10px; -} -.descfont { - font-size: 10px; - color: #666666; -} -.smallerfont { - font-size: 9px; -} -.smalltext { - color: #666666; - font-size: 10px; -} -.smalltext a { - color: #666666; -} -.smalltext-blue { - color: #3c78b5; - font-size: 10px; -} -.surtitle { - margin-left: 1px; - margin-bottom: 5px; - font-size: 14px; - color: #666666; -} - -/* css hack found here: http://www.fo3nix.pwp.blueyonder.co.uk/tutorials/css/hacks/ */ -.navItemOver { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #003366; cursor: hand; voice-family: '\'}\''; voice-family:inherit; cursor: pointer;} -.navItemOver a { color: #ffffff; background-color:#003366; text-decoration: none; } -.navItemOver a:visited { color: #ffffff; background-color:#003366; text-decoration: none; } -.navItemOver a:hover { color: #ffffff; background-color:#003366; text-decoration: none; } -.navItem { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #3c78b5; } -.navItem a { color: #ffffff; text-decoration: none; } -.navItem a:hover { color: #ffffff; text-decoration: none; } -.navItem a:visited { color: #ffffff; text-decoration: none; } - -div.padded { padding: 4px; } -div.thickPadded { padding: 10px; } -h3.macrolibrariestitle { - margin: 0px 0px 0px 0px; -} - -div.centered { text-align: center; margin: 10px; } -div.centered table {margin: 0px auto; text-align: left; } - -.tableview table { - margin: 0; -} - -.tableview th { - text-align: left; - color: #003366; - font-size: 12px; - padding: 5px 0px 0px 5px; - border-bottom: 2px solid #3c78b5; -} -.tableview td { - text-align: left; - border-color: #ccc; - border-width: 0px 0px 1px 0px; - border-style: solid; - margin: 0; - padding: 4px 10px 4px 5px; -} - -.grid { - margin: 2px 0px 5px 0px; - border-collapse: collapse; -} -.grid th { - border: 1px solid #ccc; - padding: 2px 4px 2px 4px; - background: #f0f0f0; - text-align: center; -} -.grid td { - border: 1px solid #ccc; - padding: 3px 4px 3px 4px; -} -.gridHover { - background-color: #f9f9f9; -} - -td.infocell { - background-color: #f0f0f0; -} -.label { - font-weight: bold; - color: #003366; -} -.error { - background-color: #fcc; -} - -.errorBox { - background-color: #fcc; - border: 1px solid #c00; - padding: 5px; - margin: 5px; -} - -.errorMessage { - color: #c00; -} - -.success { - background-color: #dfd; -} - -.successBox { - background-color: #dfd; - border: 1px solid #090; - padding: 5px; - margin-top:5px; - margin-bottom:5px; -} - -blockquote { - padding-left: 10px; - padding-right: 10px; - margin-left: 5px; - margin-right: 0px; - border-left: 1px solid #3c78b5; -} - -table.confluenceTable -{ - margin: 5px; - border-collapse: collapse; -} - -/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */ -table.confluenceTable td.confluenceTd -{ - border-width: 1px; - border-style: solid; - border-color: #ccc; - padding: 3px 4px 3px 4px; -} - -/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */ -table.confluenceTable th.confluenceTh -{ - border-width: 1px; - border-style: solid; - border-color: #ccc; - padding: 3px 4px 3px 4px; - background-color: #f0f0f0; - text-align: center; -} - -td.confluenceTd -{ - border-width: 1px; - border-style: solid; - border-color: #ccc; - padding: 3px 4px 3px 4px; -} - -th.confluenceTh -{ - border-width: 1px; - border-style: solid; - border-color: #ccc; - padding: 3px 4px 3px 4px; - background-color: #f0f0f0; - text-align: center; -} - -DIV.small { - font-size: 9px; -} - -H1.pagename { - margin-top: 0px; -} - -IMG.inline {} - -.loginform { - margin: 5px; - border: 1px solid #ccc; -} - -/* The text how the "This is a preview" comment should be shown. */ -.previewnote { text-align: center; - font-size: 11px; - color: red; } - -/* How the preview content should be shown */ -.previewcontent { background: #E0E0E0; } - -/* How the system messages should be shown (DisplayMessage.jsp) */ -.messagecontent { background: #E0E0E0; } - -/* How the "This page has been modified..." -comment should be shown. */ -.conflictnote { } - -.createlink { - color: maroon; -} -a.createlink { - color: maroon; -} -.templateparameter { - font-size: 9px; - color: darkblue; -} - -.diffadded { - background: #ddffdd; - padding: 1px 1px 1px 4px; - border-left: 4px solid darkgreen; -} -.diffdeleted { - color: #999; - background: #ffdddd; - padding: 1px 1px 1px 4px; - border-left: 4px solid darkred; -} -.diffnochange { - padding: 1px 1px 1px 4px; - border-left: 4px solid lightgrey; -} -.differror { - background: brown; -} -.diff { - font-family: lucida console, courier new, fixed-width; - font-size: 12px; - line-height: 14px; -} -.diffaddedchars { - background-color:#99ff99; - font-weight:bolder; -} -.diffremovedchars { - background-color:#ff9999; - text-decoration: line-through; - font-weight:bolder; -} - -.greybackground { - background: #f0f0f0 -} - -.greybox { - border: 1px solid #ddd; - padding: 3px; - margin: 1px 1px 10px 1px; -} - -.borderedGreyBox { - border: 1px solid #cccccc; - background-color: #f0f0f0; - padding: 10px; -} - -.greyboxfilled { - border: 1px solid #ddd; - padding: 5px; - margin: 10px 1px 10px 1px; - background: #f0f0f0; -} - -.navBackgroundBox { - padding: 5px 5px 5px 5px; - font-size: 22px; - font-weight: bold; - font-family: Arial, sans-serif; - color: white; - background: #3c78b5; - text-decoration: none; -} - -.previewBoxTop { - background-color: #f0f0f0; - border-width: 1px 1px 0px 1px; - border-style: solid; - border-color: #3c78b5; - padding: 5px; - margin: 5px 0px 0px 0px; - text-align: center; -} -.previewContent { - background-color: #fff; - border-color: #3c78b5; - border-width: 0px 1px 0px 1px; - border-style: solid; - padding: 10px; - margin: 0px; -} -.previewBoxBottom { - background-color: #f0f0f0; - border-width: 0px 1px 1px 1px; - border-style: solid; - border-color: #3c78b5; - padding: 5px; - margin: 0px 0px 5px 0px; - text-align: center; -} - -.functionbox { - background-color: #f0f0f0; - border: 1px solid #3c78b5; - padding: 3px; - margin: 1px 1px 10px 1px; -} - -.functionbox-greyborder { - background-color: #f0f0f0; - border: 1px solid #ddd; - padding: 3px; - margin: 1px 1px 10px 1px; -} - -.search-highlight { - background-color: #ffffcc; -} - -/* normal (white) background */ -.rowNormal { - background-color: #ffffff; - } - -/* alternate (pale yellow) background */ -.rowAlternate { - background-color: #f7f7f7; -} - -/* used in the list attachments table */ -.rowAlternateNoBottomColor { - background-color: #f7f7f7; -} - -.rowAlternateNoBottomNoColor { -} - -.rowAlternateNoBottomColor td { - border-bottom: 0px; -} - -.rowAlternateNoBottomNoColor td { - border-bottom: 0px; -} - -/* row highlight (grey) background */ -.rowHighlight { - background-color: #f0f0f0; - -} - -TD.greenbar {FONT-SIZE: 2px; BACKGROUND: #00df00; BORDER: 1px solid #9c9c9c; PADDING: 0px; } -TD.redbar {FONT-SIZE: 2px; BACKGROUND: #df0000; BORDER: 1px solid #9c9c9c; PADDING: 0px; } -TD.darkredbar {FONT-SIZE: 2px; BACKGROUND: #af0000; BORDER: 1px solid #9c9c9c; PADDING: 0px; } - -TR.testpassed {FONT-SIZE: 2px; BACKGROUND: #ddffdd; PADDING: 0px; } -TR.testfailed {FONT-SIZE: 2px; BACKGROUND: #ffdddd; PADDING: 0px; } - -.toolbar { - margin: 0px; - border-collapse: collapse; -} - -.toolbar td { - border: 1px solid #ccc; - padding: 2px 2px 2px 2px; - color: #ccc; -} - -td.noformatting { - border-width: 0px; - border-style: none; - text-align: center; - padding: 0px; -} - -.commentblock { - margin: 12px 0 12px 0; -} - -/* - * Divs displaying the license information, if necessary. - */ -.license-eval, .license-none, .license-nonprofit { - border-top: 1px solid #bbbbbb; - text-align: center; - font-size: 10px; - font-family: Verdana, Arial, Helvetica, sans-serif; -} - -.license-eval, .license-none { - background-color: #ffcccc; -} - -.license-eval b, .license-none b { - color: #990000 -} - -.license-nonprofit { - background-color: #ffffff; -} - -/* - * The shadow at the bottom of the page between the main content and the - * "powered by" section. - */ -.bottomshadow { - height: 12px; - background-image: url("$req.contextPath/images/border/border_bottom.gif"); - background-repeat: repeat-x; -} - -/* - * Styling of the operations box - */ -.navmenu .operations li, .navmenu .operations ul { - list-style: none; - margin-left: 0; - padding-left: 0; -} - -.navmenu .operations ul { - margin-bottom: 9px; -} - -.navmenu .label { - font-weight: inherit; -} - -/* - * Styling of ops as a toolbar - */ -.toolbar div { - display: none; -} - -.toolbar .label { - display: none; -} - -.toolbar .operations { - display: block; -} - -.toolbar .operations ul { - display: inline; - list-style: none; - margin-left: 10px; - padding-left: 0; -} - -.toolbar .operations li { - list-style: none; - display: inline; -} - -/* list page navigational tabs */ -#foldertab { -padding: 3px 0px 3px 8px; -margin-left: 0; -border-bottom: 1px solid #3c78b5; -font: bold 11px Verdana, sans-serif; -} - -#foldertab li { -list-style: none; -margin: 0; -display: inline; -} - -#foldertab li a { -padding: 3px 0.5em; -margin-left: 3px; -border: 1px solid #3c78b5; -border-bottom: none; -background: #3c78b5; -text-decoration: none; -} - -#foldertab li a:link { color: #ffffff; } -#foldertab li a:visited { color: #ffffff; } - -#foldertab li a:hover { -color: #ffffff; -background: #003366; -border-color: #003366; -} - -#foldertab li a.current { -background: white; -border-bottom: 1px solid white; -color: black; -} - -#foldertab li a.current:link { color: black; } -#foldertab li a.current:visited { color: black; } -#foldertab li a.current:hover { -background: white; -border-bottom: 1px solid white; -color: black; -} - -/* alphabet list */ -ul#squaretab { -margin-left: 0; -padding-left: 0; -white-space: nowrap; -font: bold 8px Verdana, sans-serif; -} - -#squaretab li { -display: inline; -list-style-type: none; -} - -#squaretab a { -padding: 2px 6px; -border: 1px solid #3c78b5; -} - -#squaretab a:link, #squaretab a:visited { -color: #fff; -background-color: #3c78b5; -text-decoration: none; -} - -#squaretab a:hover { -color: #ffffff; -background-color: #003366; -border-color: #003366; -text-decoration: none; -} - -#squaretab li a#current { -background: white; -color: black; -} - -.blogcalendar * { - font-family:verdana, arial, sans-serif; - font-size:x-small; - font-weight:normal; - line-height:140%; - padding:2px; -} - - -table.blogcalendar { - border: 1px solid #3c78b5; -} - -.blogcalendar th.calendarhead, a.calendarhead { - font-size:x-small; - font-weight:bold; - padding:2px; - text-transform:uppercase; - background-color: #3c78b5; - color: #ffffff; - letter-spacing: .3em; - text-transform: uppercase; -} - -.calendarhead:visited {color: white;} -.calendarhead:active {color: white;} -.calendarhead:hover {color: white;} - -.blogcalendar th { - font-size:x-small; - font-weight:bold; - padding:2px; - background-color:#f0f0f0; -} - -.blogcalendar td { - font-size:x-small; - font-weight:normal; -} - -.searchGroup { padding: 0 0 10px 0; background: #f0f0f0; } -.searchGroupHeading { font-size: 10px; font-weight: bold; color: #ffffff; background-color: #3c78b5; padding: 2px 4px 1px 4px; } -.searchItem { padding: 1px 4px 1px 4px; } -.searchItemSelected { padding: 1px 4px 1px 4px; font-weight: bold; background: #ddd; } - -/* permissions page styles */ -.permissionHeading { - border-bottom: #bbb; border-width: 0 0 1px 0; border-style: solid; font-size: 16px; text-align: left; -} -.permissionTab { - border-width: 0 0 0 1px; border-style: solid; background: #3c78b5; color: #ffffff; font-size: 10px; -} -.permissionSuperTab { - border-width: 0 0 0 1px; border-style: solid; background: #003366; color: #ffffff; -} -.permissionCell { - border-left: #bbb; border-width: 0 0 0 1px; border-style: solid; -} - -/* warning panel */ -.warningPanel { background: #FFFFCE; border:#F0C000 1px solid; padding: 8px; margin: 10px; } -/* alert panel */ -.alertPanel { background: #FFCCCC; border:#C00 1px solid; padding: 8px; margin: 10px; } - -/* side menu highlighting (e.g. space content screen) */ -.optionPadded { padding: 2px; } -.optionSelected { background-color: #ffffcc; padding: 2px; border: 1px solid #ddd; margin: -1px; } -.optionSelected a { font-weight: bold; text-decoration: none; color: black; } - -/* information macros */ -.noteMacro { border-style: solid; border-width: 1px; border-color: #F0C000; background-color: #FFFFCE; text-align:left; margin-top: 5px; margin-bottom: 5px} -.warningMacro { border-style: solid; border-width: 1px; border-color: #c00; background-color: #fcc; text-align:left; margin-top: 5px; margin-bottom: 5px} -.infoMacro { border-style: solid; border-width: 1px; border-color: #3c78b5; background-color: #D8E4F1; text-align:left; margin-top: 5px; margin-bottom: 5px} -.tipMacro { border-style: solid; border-width: 1px; border-color: #090; background-color: #dfd; text-align:left; margin-top: 5px; margin-bottom: 5px} -.informationMacroPadding { padding: 5px 0 0 5px; } - -table.infoMacro td, table.warningMacro td, table.tipMacro td, table.noteMacro td, table.sectionMacro td { - border: none; -} - -table.sectionMacroWithBorder td.columnMacro { border-style: dashed; border-width: 1px; border-color: #cccccc;} - -/* styles for links in the top bar */ -.topBarDiv a:link {color: #ffffff;} -.topBarDiv a:visited {color: #ffffff;} -.topBarDiv a:active {color: #ffffff;} -.topBarDiv a:hover {color: #ffffff;} -.topBarDiv {color: #ffffff;} - -.topBar { - background-color: #003366; -} - - -/* styles for extended operations */ -.greyLinks a:link {color: #666666; text-decoration:underline;} -.greyLinks a:visited {color: #666666; text-decoration:underline;} -.greyLinks a:active {color: #666666; text-decoration:underline;} -.greyLinks a:hover {color: #666666; text-decoration:underline;} -.greyLinks {color: #666666; display:block; padding: 10px} - -.logoSpaceLink {color: #999999; text-decoration: none} -.logoSpaceLink a:link {color: #999999; text-decoration: none} -.logoSpaceLink a:visited {color: #999999; text-decoration: none} -.logoSpaceLink a:active {color: #999999; text-decoration: none} -.logoSpaceLink a:hover {color: #003366; text-decoration: none} - -/* basic panel (basicpanel.vmd) style */ -.basicPanelContainer {border: 1px solid #3c78b5; margin-top: 2px; margin-bottom: 8px; width: 100%} -.basicPanelTitle {padding: 5px; margin: 0px; background-color: #f0f0f0; color: black; font-weight: bold;} -.basicPanelBody {padding: 5px; margin: 0px} - -.separatorLinks a:link {color: white} -.separatorLinks a:visited {color: white} -.separatorLinks a:active {color: white} - -.greynavbar {background-color: #f0f0f0; border-top: 1px solid #3c78b5; margin-top: 2px} - -div.headerField { - float: left; - width: auto; - height: 100%; -} - -.headerFloat { - margin-left: auto; - width: 50%; -} - -.headerFloatLeft { - float: left; - margin-right: 20px; - margin-bottom: 10px; -} - -#headerRow { - padding: 10px; -} - -div.license-personal { - background-color: #003366; - color: #ffffff; -} - -div.license-personal a { - color: #ffffff; -} - -.greyFormBox { - border: 1px solid #cccccc; - padding: 5px; -} - -/* IE automatically adds a margin before and after form tags. Use this style to remove that */ -.marginlessForm { - margin: 0px; -} - -.openPageHighlight { - background-color: #ffffcc; - padding: 2px; - border: 1px solid #ddd; -} - -.editPageInsertLinks, .editPageInsertLinks a -{ - color: #666666; - font-weight: bold; - font-size: 10px; -} - -/* Style for label heatmap. */ -.top10 a { - font-weight: bold; - font-size: 2em; - color: #003366; -} -.top25 a { - font-weight: bold; - font-size: 1.6em; - color: #003366; -} -.top50 a { - font-size: 1.4em; - color: #003366; -} -.top100 a { - font-size: 1.2em; - color: #003366; -} - -.heatmap { - list-style:none; - width: 95%; - margin: 0px auto; -} - -.heatmap a { - text-decoration:none; -} - -.heatmap a:hover { - text-decoration:underline; -} - -.heatmap li { - display: inline; -} - -.minitab { -padding: 3px 0px 3px 8px; -margin-left: 0; -margin-top: 1px; -margin-bottom: 0px; -border-bottom: 1px solid #3c78b5; -font: bold 9px Verdana, sans-serif; -text-decoration: none; -float:none; -} -.selectedminitab { -padding: 3px 0.5em; -margin-left: 3px; -margin-top: 1px; -border: 1px solid #3c78b5; -background: white; -border-bottom: 1px solid white; -color: #000000; -text-decoration: none; -} -.unselectedminitab { -padding: 3px 0.5em; -margin-left: 3px; -margin-top: 1px; -border: 1px solid #3c78b5; -border-bottom: none; -background: #3c78b5; -color: #ffffff; -text-decoration: none; -} - -a.unselectedminitab:hover { -color: #ffffff; -background: #003366; -border-color: #003366; -} - -a.unselectedminitab:link { color: white; } -a.unselectedminitab:visited { color: white; } - -a.selectedminitab:link { color: black; } -a.selectedminitab:visited { color: black; } - -.linkerror { background-color: #fcc;} - -a.labelOperationLink:link {text-decoration: underline} -a.labelOperationLink:active {text-decoration: underline} -a.labelOperationLink:visited {text-decoration: underline} -a.labelOperationLink:hover {text-decoration: underline} - -a.newLabel:link {background-color: #ddffdd} -a.newLabel:active {background-color: #ddffdd} -a.newLabel:visited {background-color: #ddffdd} -a.newLabel:hover {background-color: #ddffdd} - -ul.square {list-style-type: square} - -.inline-control-link { - background: #ffc; - font-size: 9px; - color: #666; - padding: 2px; - text-transform: uppercase; - text-decoration: none; -} - - -.inline-control-link a:link {text-decoration: none} -.inline-control-link a:active {text-decoration: none} -.inline-control-link a:visited {text-decoration: none} -.inline-control-link a:hover {text-decoration: none} - -.inline-control-link { - background: #ffc; - font-size: 9px; - color: #666; - padding: 2px; - text-transform: uppercase; - text-decoration: none; - cursor: pointer; -} - -div.auto_complete { - width: 350px; - background: #fff; -} -div.auto_complete ul { - border: 1px solid #888; - margin: 0; - padding: 0; - width: 100%; - list-style-type: none; -} -div.auto_complete ul li { - margin: 0; - padding: 3px; -} -div.auto_complete ul li.selected { - background-color: #ffb; -} -div.auto_complete ul strong.highlight { - color: #800; - margin: 0; - padding: 0; -} - -/******* Edit Page Styles *******/ -.toogleFormDiv{ - border:1px solid #A7A6AA; - background-color:white; - padding:5px; - margin-top: 5px; -} - -.toogleInfoDiv{ - border:1px solid #A7A6AA; - background-color:white; - display:none; - padding:5px; - margin-top: 10px; -} - -.inputSection{ - margin-bottom:20px; -} - -#editBox{ - border:1px solid lightgray; - background-color:#F0F0F0; -} - -/******* Left Navigation Theme Styles ********/ -.leftnav li a { - text-decoration:none; - color:white; - margin:0px; - display:block; - padding:2px; - padding-left:5px; - background-color: #3c78b5; - border-top:1px solid #3c78b5; -} - -.leftnav li a:active {color:white;} -.leftnav li a:visited {color:white;} -.leftnav li a:hover {background-color: #003366; color:white;}
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/eval.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/eval.conf b/extras/rya.manual/src/main/webapp/eval.conf deleted file mode 100644 index f502b94..0000000 --- a/extras/rya.manual/src/main/webapp/eval.conf +++ /dev/null @@ -1,56 +0,0 @@ -h1. Prospects Table - -The Prospects Table provides statistics on the number of subject/predicate/object data found in the triple store. It is currently a -Map Reduce job that will run against the Rya store and save all the statistics in the prosepcts table. - -h2. Build - -[Build the mmrts.git repo|./build-source.html] - -h2. Run - -Deploy the extras/rya.prospector/target/rya.prospector-<version>-shade.jar file to the hadoop cluster. - -The prospector also requires a configuration file that defines where Accumulo is, which Rya table (has to be the SPO table) to read from, and -which table to output to. (Note: Make sure you follow the same schema as the Rya tables (prospects table name: tableprefix_prospects) - -A sample configuration file might look like the following: -{code} -<?xml version="1.0"?> -<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> -<configuration> - <property> - <name>prospector.intable</name> - <value>triplestore_spo</value> - </property> - <property> - <name>prospector.outtable</name> - <value>triplestore_prospects</value> - </property> - <property> - <name>prospector.auths</name> - <value>U,FOUO</value> - </property> - <property> - <name>instance</name> - <value>accumulo</value> - </property> - <property> - <name>zookeepers</name> - <value>localhost:2181</value> - </property> - <property> - <name>username</name> - <value>root</value> - </property> - <property> - <name>password</name> - <value>secret</value> - </property> -</configuration> -{code} - -Run the command, filling in the correct information. -{code} -hadoop jar rya.prospector-3.0.4-SNAPSHOT-shade.jar mvm.rya.prospector.mr.Prospector /tmp/prospectorConf.xml -{code} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/images/bg.png ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/images/bg.png b/extras/rya.manual/src/main/webapp/images/bg.png deleted file mode 100644 index 878a84f..0000000 Binary files a/extras/rya.manual/src/main/webapp/images/bg.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/images/bg02-blue-left.png ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/images/bg02-blue-left.png b/extras/rya.manual/src/main/webapp/images/bg02-blue-left.png deleted file mode 100644 index 057efdf..0000000 Binary files a/extras/rya.manual/src/main/webapp/images/bg02-blue-left.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/images/bg02-blue-right.png ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/images/bg02-blue-right.png b/extras/rya.manual/src/main/webapp/images/bg02-blue-right.png deleted file mode 100644 index edf9a9d..0000000 Binary files a/extras/rya.manual/src/main/webapp/images/bg02-blue-right.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/images/bg02-white-left-nogr.png ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/images/bg02-white-left-nogr.png b/extras/rya.manual/src/main/webapp/images/bg02-white-left-nogr.png deleted file mode 100644 index 1c5186c..0000000 Binary files a/extras/rya.manual/src/main/webapp/images/bg02-white-left-nogr.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/images/bg02-white-right-nogr.png ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/images/bg02-white-right-nogr.png b/extras/rya.manual/src/main/webapp/images/bg02-white-right-nogr.png deleted file mode 100644 index 9734def..0000000 Binary files a/extras/rya.manual/src/main/webapp/images/bg02-white-right-nogr.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/images/big-bullet.png ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/images/big-bullet.png b/extras/rya.manual/src/main/webapp/images/big-bullet.png deleted file mode 100644 index f036db5..0000000 Binary files a/extras/rya.manual/src/main/webapp/images/big-bullet.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/images/left-box-bottom.png ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/images/left-box-bottom.png b/extras/rya.manual/src/main/webapp/images/left-box-bottom.png deleted file mode 100644 index 0495248..0000000 Binary files a/extras/rya.manual/src/main/webapp/images/left-box-bottom.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/images/left-box-right.png ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/images/left-box-right.png b/extras/rya.manual/src/main/webapp/images/left-box-right.png deleted file mode 100644 index 2698074..0000000 Binary files a/extras/rya.manual/src/main/webapp/images/left-box-right.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/images/left-box-top.png ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/images/left-box-top.png b/extras/rya.manual/src/main/webapp/images/left-box-top.png deleted file mode 100644 index e1fc26e..0000000 Binary files a/extras/rya.manual/src/main/webapp/images/left-box-top.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/images/logo.png ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/images/logo.png b/extras/rya.manual/src/main/webapp/images/logo.png deleted file mode 100644 index 42a1fb5..0000000 Binary files a/extras/rya.manual/src/main/webapp/images/logo.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/images/logo2.png ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/images/logo2.png b/extras/rya.manual/src/main/webapp/images/logo2.png deleted file mode 100644 index 9d29d0f..0000000 Binary files a/extras/rya.manual/src/main/webapp/images/logo2.png and /dev/null differ http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/index.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/index.conf b/extras/rya.manual/src/main/webapp/index.conf deleted file mode 100644 index 2bcf160..0000000 --- a/extras/rya.manual/src/main/webapp/index.conf +++ /dev/null @@ -1,4 +0,0 @@ -h1. Rya - -This project contains documentation about the Rya, a scalable RDF triple store on top of Accumulo. - http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/infer.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/infer.conf b/extras/rya.manual/src/main/webapp/infer.conf deleted file mode 100644 index e9c16d2..0000000 --- a/extras/rya.manual/src/main/webapp/infer.conf +++ /dev/null @@ -1,13 +0,0 @@ -h1. Inferencing - -The current inferencing set supported includes: -* rdfs:subClassOf -* rdfs:subPropertyOf -* owl:equivalentProperty -* owl:inverseOf -* owl:SymmetricProperty -* owl:TransitiveProperty (* This is implemented, but probably not fully. Still in testing) - -Nothing special has to be done outside of making sure that the RdfCloudTripleStore object has the InferencingEngine object set on it and properly configured. This is usually done by default. See the [Query Data Section|./querydata.html] for a simple example. - -Also, the inferencing engine is set to pull down the latest model every 5 minutes currently (which is configurable). So if you load a new model, a previous RepositoryConnection may not pick up these changes into the Inferencing Engine yet. Getting the InferencingEngine object from the RdfCloudTripleStore and running the {{refreshGraph}} method can refresh the inferred graph immediately. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/loadPrecomputedJoin.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/loadPrecomputedJoin.conf b/extras/rya.manual/src/main/webapp/loadPrecomputedJoin.conf deleted file mode 100644 index 868b5a1..0000000 --- a/extras/rya.manual/src/main/webapp/loadPrecomputedJoin.conf +++ /dev/null @@ -1,27 +0,0 @@ -h1. Load Pre-computed Join - -A tool has been created to load a pre-computed join. This tool will generate an index to support a pre-computed join on a user provided SPARQL query, and then register that query within Rya. - - -h2. Registering a pre-computed join - -Generating a pre-computed join is done using Pig to execute a series of Map Reduce jobs. The index (pre-computed join) is associated with a user defined SPARQL query. - -To execute the indexing tool, compile and run {code}mvm.rya.accumulo.pig.IndexWritingTool{code} -with the following seven input arguments: {code} [hdfsSaveLocation] [sparqlFile] [cbinstance] [cbzk] [cbuser] [cbpassword] [rdfTablePrefix]{code} - - -Options: -* hdfsSaveLocation: a working directory on hdfs for storing interim results -* sparqlFile: the query to generate a precomputed join for -* cbinstance: the accumulo instance name -* cbzk: the accumulo zookeeper name -* cbuser: the accumulo username -* cbpassword: the accumulo password for the supplied user -* rdfTablePrefix : The tables (spo, po, osp) are prefixed with this qualifier. The tables become: (rdf.tablePrefix)spo,(rdf.tablePrefix)po,(rdf.tablePrefix)osp - - -h1. Using a Pre-computed Join - -An example of using a pre-computed join can be referenced in -{code} mvm.rya.indexing.external.ExternalSailExample {code} http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/loaddata.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/loaddata.conf b/extras/rya.manual/src/main/webapp/loaddata.conf deleted file mode 100644 index 9eb7c47..0000000 --- a/extras/rya.manual/src/main/webapp/loaddata.conf +++ /dev/null @@ -1,117 +0,0 @@ -h1. Load Data - -There are a few mechanisms to load data - -h2. Web REST endpoint - -The War sets up a Web REST endpoint at {{http://server/web.rya/loadrdf}} that allows POST data to get loaded into the Rdf Store. This short tutorial will use Java code to post data. - -First, you will need data to load and will need to figure out what format that data is in. - -For this sample, we will use the following N-Triples: -{code} -<http://mynamespace/ProductType1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://mynamespace/ProductType> . -<http://mynamespace/ProductType1> <http://www.w3.org/2000/01/rdf-schema#label> "Thing" . -<http://mynamespace/ProductType1> <http://purl.org/dc/elements/1.1/publisher> <http://mynamespace/Publisher1> . -{code} - -Save this file somewhere $RDF_DATA - -Second, use the following Java code to load data to the REST endpoint: -{code} -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; -import java.net.URL; -import java.net.URLConnection; - -public class LoadDataServletRun { - - public static void main(String[] args) { - try { - final InputStream resourceAsStream = Thread.currentThread().getContextClassLoader() - .getResourceAsStream("$RDF_DATA"); - URL url = new URL("http://server/web.rya/loadrdf" + - "?format=N-Triples" + - ""); - URLConnection urlConnection = url.openConnection(); - urlConnection.setRequestProperty("Content-Type", "text/plain"); - urlConnection.setDoOutput(true); - - final OutputStream os = urlConnection.getOutputStream(); - - int read; - while((read = resourceAsStream.read()) >= 0) { - os.write(read); - } - resourceAsStream.close(); - os.flush(); - - BufferedReader rd = new BufferedReader(new InputStreamReader( - urlConnection.getInputStream())); - String line; - while ((line = rd.readLine()) != null) { - System.out.println(line); - } - rd.close(); - os.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } -} -{code} - -Compile and run this code above, changing the references for $RDF_DATA and the url that your Rdf War is running at. - -The default "format" is RDF/XML, but these formats are supported : RDFXML, NTRIPLES, TURTLE, N3, TRIX, TRIG. - -h2. Bulk Loading data - -Bulk loading data is done through Map Reduce jobs - -h3. Bulk Load RDF data - - This Map Reduce job will read a full file into memory and parse it into statements. The statements are saved into the store. Here is an example for storing in Accumulo: -{code} -hadoop jar target/accumulo.rya-3.0.4-SNAPSHOT-shaded.jar mvm.rya.accumulo.mr.fileinput.BulkNtripsInputTool -Dac.zk=localhost:2181 -Dac.instance=accumulo -Dac.username=root -Dac.pwd=secret -Drdf.tablePrefix=triplestore_ -Dio.sort.mb=64 /tmp/temp.ntrips -{code} - -Options: -* rdf.tablePrefix : The tables (spo, po, osp) are prefixed with this qualifier. The tables become: (rdf.tablePrefix)spo,(rdf.tablePrefix)po,(rdf.tablePrefix)osp -* ac.* : Accumulo connection parameters -* rdf.format : See RDFFormat from openrdf, samples include (Trig, N-Triples, RDF/XML) -* io.sort.mb : Higher the value, the faster the job goes. Just remember that you will need this much ram at least per mapper - -The argument is the directory/file to load. This file needs to be loaded into HDFS before running. - -h2. Direct OpenRDF API - -Here is some sample code to load data directly through the OpenRDF API. (Loading N-Triples data) -You will need at least cloudbase.rya-<version>, rya.api, rya.sail.impl on the classpath and transitive dependencies. I find that Maven is the easiest way to get a project dependency tree set up. - -{code} - final RdfCloudTripleStore store = new RdfCloudTripleStore(); - AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration(); - AccumuloRyaDAO dao = new AccumuloRdfDAO(); - Connector connector = new ZooKeeperInstance("instance", "zkserver:port").getConnector("user", "password"); - dao.setConnector(connector); - conf.setTablePrefix("rya_"); - dao.setConf(conf); - store.setRdfDao(dao); - - Repository myRepository = new RyaSailRepository(store); - myRepository.initialize(); - RepositoryConnection conn = myRepository.getConnection(); - - //load data from file - final File file = new File("ntriples.ntrips"); - conn.add(new FileInputStream(file), file.getName(), - RDFFormat.NTRIPLES, new Resource[]{}); - - conn.commit(); - - conn.close(); - myRepository.shutDown(); -{code} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/overview.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/overview.conf b/extras/rya.manual/src/main/webapp/overview.conf deleted file mode 100644 index f351612..0000000 --- a/extras/rya.manual/src/main/webapp/overview.conf +++ /dev/null @@ -1,4 +0,0 @@ -h1. Overview - -The MVM RDF Cloud Triple Store is a scalable RDF Store that is built on top of a Columnar Index Store (such as Accumulo, Cloudbase, Hbase). It is implemented as an extension to OpenRdf to provide easy query mechanisms (SPARQL, SERQL, etc) and Rdf data storage (RDF/XML, NTriples, etc). - http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/querydata.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/querydata.conf b/extras/rya.manual/src/main/webapp/querydata.conf deleted file mode 100644 index 1f93944..0000000 --- a/extras/rya.manual/src/main/webapp/querydata.conf +++ /dev/null @@ -1,115 +0,0 @@ -h1. Query Data - -There are a few mechanisms to query data - -h2. Web JSP endpoint - -Open a url to {{http://server/web.rya/sparqlQuery.jsp}}. This simple form can run Sparql. - -h2. Web REST endpoint - -The War sets up a Web REST endpoint at {{http://server/web.rya/queryrdf}} that allows GET requests with queries. - -For this sample, we will assume you already loaded data from the [loaddata.html] tutorial - -Save this file somewhere $RDF_DATA - -Second, use the following Java code to load data to the REST endpoint: -{code} -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.net.URL; -import java.net.URLConnection; -import java.net.URLEncoder; - -public class QueryDataServletRun { - - public static void main(String[] args) { - try { - String query = "select * where {\n" + - "<http://mynamespace/ProductType1> ?p ?o.\n" + - "}"; - - String queryenc = URLEncoder.encode(query, "UTF-8"); - - URL url = new URL("http://server/rdfTripleStore/queryrdf?query=" + queryenc); - URLConnection urlConnection = url.openConnection(); - urlConnection.setDoOutput(true); - - BufferedReader rd = new BufferedReader(new InputStreamReader( - urlConnection.getInputStream())); - String line; - while ((line = rd.readLine()) != null) { - System.out.println(line); - } - rd.close(); - } catch (Exception e) { - e.printStackTrace(); - } - } -} -{code} - -Compile and run this code above, changing the url that your Rdf War is running at. - -h2. Direct Code - -Here is a code snippet for directly running against Accumulo with the code. You will need at least accumulo.rya.jar, rya.api, rya.sail.impl on the classpath and transitive dependencies. I find that Maven is the easiest way to get a project dependency tree set up. - -{code} - Connector connector = new ZooKeeperInstance("cbinstance", "zkserver:port").getConnector("cbuser", "cbpassword"); - - final RdfCloudTripleStore store = new RdfCloudTripleStore(); - AccumuloRyaDAO crdfdao = new AccumuloRyaDAO(); - crdfdao.setConnector(connector); - - AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration(); - conf.setTablePrefix("rts_"); - conf.setDisplayQueryPlan(true); - crdfdao.setConf(conf); - store.setRdfDao(crdfdao); - - ProspectorServiceEvalStatsDAO evalDao = new ProspectorServiceEvalStatsDAO(connector, conf); - evalDao.init(); - store.setRdfEvalStatsDAO(evalDao); - - InferenceEngine inferenceEngine = new InferenceEngine(); - inferenceEngine.setRdfDao(crdfdao); - inferenceEngine.setConf(conf); - store.setInferenceEngine(inferenceEngine); - - Repository myRepository = new RyaSailRepository(store); - myRepository.initialize(); - - String query = "select * where {\n" + - "<http://mynamespace/ProductType1> ?p ?o.\n" + - "}"; - RepositoryConnection conn = myRepository.getConnection(); - System.out.println(query); - TupleQuery tupleQuery = conn.prepareTupleQuery( - QueryLanguage.SPARQL, query); - ValueFactory vf = ValueFactoryImpl.getInstance(); - - TupleQueryResultHandler writer = new SPARQLResultsXMLWriter(System.out); - tupleQuery.evaluate(new TupleQueryResultHandler() { - - int count = 0; - - @Override - public void startQueryResult(List<String> strings) throws TupleQueryResultHandlerException { - } - - @Override - public void endQueryResult() throws TupleQueryResultHandlerException { - } - - @Override - public void handleSolution(BindingSet bindingSet) throws TupleQueryResultHandlerException { - System.out.println(bindingSet); - } - }); - - conn.close(); - myRepository.shutDown(); -{code} - http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/quickstart.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/quickstart.conf b/extras/rya.manual/src/main/webapp/quickstart.conf deleted file mode 100644 index ce0d20b..0000000 --- a/extras/rya.manual/src/main/webapp/quickstart.conf +++ /dev/null @@ -1,42 +0,0 @@ -h1. Quick Start - -This tutorial will outline the steps needed to get quickly started with the Rya store using the web based endpoint. - -h2. Prerequisites - -* Columnar Store (either Accumulo or Cloudbase) The tutorial will go forward using Accumulo -* Rya code (Git: [email protected]:texeltek/rya.git) -* Maven 2.2 + - -h2. Building from Source - -Using Git, pull down the latest code from the url above. - -Run the command to build the code {{mvn clean install}} - -If all goes well, the build should be successful and a war should be produced in {{web/web.rya/target/web.rya.war}} - -h2. Deployment - -(Using tomcat) - -Unwar the above war into the webapps directory. - -To point the web.rya war to the appropriate Accumulo instance, make a properties file {{environment.properties}} and put it in the classpath. Here is an example: -{code} -instance.name=accumulo #Accumulo instance name -instance.zk=localhost:2181 #Accumulo Zookeepers -instance.username=root #Accumulo username -instance.password=secret #Accumulo pwd -rya.tableprefix=triplestore_ #Rya Table Prefix -rya.displayqueryplan=true #To display the query plan -{code} - -Start the Tomcat server. {{./bin/startup.sh}} - -h2. Usage - -First, we need to load data. See the [Load Data Section|./loaddata] - -Second, we need to query that data. See the [Query Data Section|./querydata] - http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/sm-addauth.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/sm-addauth.conf b/extras/rya.manual/src/main/webapp/sm-addauth.conf deleted file mode 100644 index 371d8da..0000000 --- a/extras/rya.manual/src/main/webapp/sm-addauth.conf +++ /dev/null @@ -1,98 +0,0 @@ -h1. Add Authentication - -This tutorial will give a few examples on how to load and query data with authentication. - -This is only available for Cloudbase and Accumulo because they provide the security filters necessary to do row level authentication and visibility. - -h2. Load Data with Visibilities - -During the Load process, there are a few ways to set the Column Visibility you want set on each of the corresponding rdf rows. - -h3. Global Visibility - -You can set the Column Visibility globally on the RdfCloudTripleStore, and it will use that particular value for every row saved. - -To do this, once you create and set up the RdfCloudTripleStore, just set the property on the store configuration: - -{code} -//setup -final RdfCloudTripleStore store = new RdfCloudTripleStore(); -AccumuloRyaDAO crdfdao = new AccumuloRyaDAO(); -crdfdao.setConnector(connector); - -AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration(); -conf.setTablePrefix("rts_"); -conf.setDisplayQueryPlan(true); - -//set global column Visibility -conf.setCv("AUTH1|AUTH2"); - -crdfdao.setConf(conf); -store.setRdfDao(crdfdao); -{code} - -The format is simply the same as the Column Visibility format. - -h3. Per triple or document based Visibility - -TODO: Not available as of yet - -h2. Query Data with Authentication - -Attaching an Authentication to the query process is very simple. It requires just adding the property {{RdfCloudTripleStoreConfiguration.CONF_QUERY_AUTH}} to the query {{BindingSet}} -Example: - -{code} -//setup -Connector connector = new ZooKeeperInstance("cbinstance", "zkserver:port").getConnector("cbuser", "cbpassword"); -final RdfCloudTripleStore store = new RdfCloudTripleStore(); -AccumuloRyaDAO crdfdao = new AccumuloRyaDAO(); -crdfdao.setConnector(connector); - -AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration(); -conf.setTablePrefix("rts_"); -conf.setDisplayQueryPlan(true); -crdfdao.setConf(conf); -//set global column Visibility -conf.setCv("1|2"); -store.setRdfDao(crdfdao); - -InferenceEngine inferenceEngine = new InferenceEngine(); -inferenceEngine.setRdfDao(crdfdao); -inferenceEngine.setConf(conf); -store.setInferenceEngine(inferenceEngine); - -Repository myRepository = new RyaSailRepository(store); -myRepository.initialize(); -RepositoryConnection conn = myRepository.getConnection(); - -//define and add statement -String litdupsNS = "urn:test:litdups#"; -URI cpu = vf.createURI(litdupsNS, "cpu"); -URI loadPerc = vf.createURI(litdupsNS, "loadPerc"); -URI uri1 = vf.createURI(litdupsNS, "uri1"); -conn.add(cpu, loadPerc, uri1); -conn.commit(); - -//query with auth -String query = "select * where {" + - "<" + cpu.toString() + "> ?p ?o1." + - "}"; -TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, query); -tupleQuery.setBinding(RdfCloudTripleStoreConfiguration.CONF_QUERY_AUTH, vf.createLiteral("2")); -TupleQueryResult result = tupleQuery.evaluate(); -while(result.hasNext()) { - System.out.println(result.next()); -} -result.close(); - -//close -conn.close(); -myRepository.shutDown(); -{code} - -Or you can set a global auth using the configuration: - -{code} -conf.setAuth("2") -{code} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/sm-firststeps.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/sm-firststeps.conf b/extras/rya.manual/src/main/webapp/sm-firststeps.conf deleted file mode 100644 index 04a56b9..0000000 --- a/extras/rya.manual/src/main/webapp/sm-firststeps.conf +++ /dev/null @@ -1,55 +0,0 @@ -h1. Typical First Steps - -In this tutorial, I will give you a quick overview of some of the first steps I perform to get data loaded and read for query. - -h2. Prerequisites - - We are assuming Accumulo 1.4+ usage here. - - * Rya Source Code {{web.rya.war}}) - * Accumulo on top of Hadoop 0.20+ - * RDF Data (in N-Triples format, this format is the easiest to bulk load) - -h2. Building Source - -Skip this section if you already have the Map Reduce artifact and the WAR - -See the [Build From Source Section|./build-source.html] to get the appropriate artifacts built - -h2. Load Data - -I find that the best way to load the data is through the Bulk Load Map Reduce job. - -# Save the RDF Data above onto HDFS. From now on we will refer to this location as <RDF_HDFS_LOCATION> -# Move the cloudbase.rya-<version>-job.jar onto the hadoop cluster -# Bulk load the data. Here is a sample command line: -{code} -hadoop jar ../cloudbase.rya-2.0.0-SNAPSHOT-job.jar BulkNtripsInputTool -Drdf.tablePrefix=lubm_ -Dcb.username=cbuser -Dcb.pwd=cbpwd -Dcb.instance=cbinstance -Dcb.zk=zookeeperLocation -Drdf.format=N-Triples <RDF_HDFS_LOCATION> -{code} - -Once the data is loaded, it is actually a good practice to compact your tables. You can do this by opening the cloudbase shell {{cbshell}} and running the {{compact}} command on the generated tables. Remember the generated tables will be prefixed by the {{rdf.tablePrefix}} property you assigned above. The default tablePrefix is {{rts}}. -Here is a sample cloudbase shell command: -{code} -compact -p lubm_(.*) -{code} - -See the [Load Data Section|./loaddata.html] for more options on loading rdf data - -h2. Run the Statistics Optimizer - -For the best query performance, it is recommended to run the Statistics Optimizer to create the Evaluation Statistics table. This job will read through your data and gather statistics on the distribution of the dataset. This table is then queried before query execution to reorder queries based on the data distribution. - -See the [Evaluation Statistics Table Section|eval.html] on how to do this. - -h2. Query data - -I find the easiest way to query is just to use the WAR. Load the WAR into your favorite web application container and go to the sparqlQuery.jsp page. Example: -{code} -http://localhost:8080/web.rya/sparqlQuery.jsp -{code} - -This page provides a very simple text box for running queries against the store and getting data back. (SPARQL queries) - -Remember to update the connection information in the WAR: {{WEB-INF/spring/spring-cloudbase.xml}} - -See the [Query data section|./querydata.html] for more information. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/sm-infer.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/sm-infer.conf b/extras/rya.manual/src/main/webapp/sm-infer.conf deleted file mode 100644 index ab25281..0000000 --- a/extras/rya.manual/src/main/webapp/sm-infer.conf +++ /dev/null @@ -1,313 +0,0 @@ -h1. Inferencing - -The Rdf store provides simple inferencing currently. The supported list of inferred relationships include: - -* rdfs:subClassOf -* rdfs:subPropertyOf -* owl:EquivalentProperty -* owl:inverseOf -* owl:SymmetricProperty -* owl:TransitiveProperty (This is currently in beta and will not work for every case) - -h2. Setup - -The Inferencing Engine is a scheduled job that runs by default every 5 minutes, this is configurable, to query the relationships in the store and develop the inferred graphs necessary to answer inferencing questions. - -This also means that if you load a model into the store, it could take up to 5 minutes for the inferred relationships to be available. - -As usual you will need to set up your {{RdfCloudTripleStore}} with the correct DAO, notice we add an {{InferencingEngine}} as well to the store. If this is not added, then no inferencing will be done on the queries: - -{code} -//setup -Connector connector = new ZooKeeperInstance("cbinstance", "zkserver:port").getConnector("cbuser", "cbpassword"); -final RdfCloudTripleStore store = new RdfCloudTripleStore(); -AccumuloRyaDAO crdfdao = new AccumuloRyaDAO(); -crdfdao.setConnector(connector); - -AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration(); -conf.setTablePrefix("rts_"); -conf.setDisplayQueryPlan(true); -crdfdao.setConf(conf); -store.setRdfDao(crdfdao); - -ProspectorServiceEvalStatsDAO evalDao = new ProspectorServiceEvalStatsDAO(connector, conf); -evalDao.init(); -store.setRdfEvalStatsDAO(evalDao); - -InferenceEngine inferenceEngine = new InferenceEngine(); -inferenceEngine.setRdfDao(crdfdao); -inferenceEngine.setConf(conf); -store.setInferenceEngine(inferenceEngine); - -Repository myRepository = new RyaSailRepository(store); -myRepository.initialize(); -RepositoryConnection conn = myRepository.getConnection(); - -//query code goes here - -//close -conn.close(); -myRepository.shutDown(); -{code} - -h2. Samples - -We will go through some quick samples on loading inferred relationships, seeing and diagnosing the query plan, and checking the data - -h3. Rdfs:SubClassOf - -First the code, which will load the following subclassof relationship: {{UndergraduateStudent subclassof Student subclassof Person}}. Then we will load into the tables three triples defining {{UgradA rdf:type UndergraduateStudent, StudentB rdf:type Student, PersonC rdf:type Person}} - -{code} -conn.add(new StatementImpl(vf.createURI(litdupsNS, "UndergraduateStudent"), RDFS.SUBCLASSOF, vf.createURI(litdupsNS, "Student"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "Student"), RDFS.SUBCLASSOF, vf.createURI(litdupsNS, "Person"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "UgradA"), RDF.TYPE, vf.createURI(litdupsNS, "UndergraduateStudent"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "StudentB"), RDF.TYPE, vf.createURI(litdupsNS, "Student"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "PersonC"), RDF.TYPE, vf.createURI(litdupsNS, "Person"))); -conn.commit(); -{code} - -Remember that once the model is committed, it may take up to 5 minutes for the inferred relationships to be ready. Though you can override this property in the {{InferencingEngine}}. - -We shall run the following query: - -{code} -PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> -PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> -PREFIX lit: <urn:test:litdups#> -select * where {?s rdf:type lit:Person.} -{code} - -And should get back the following results: -{code} -[s=urn:test:litdups#StudentB] -[s=urn:test:litdups#PersonC] -[s=urn:test:litdups#UgradA] -{code} - -h4. How it works - -Let us look at the query plan: -{code} -QueryRoot - Projection - ProjectionElemList - ProjectionElem "s" - Join - FixedStatementPattern - Var (name=79f261ee-e930-4af1-bc09-e637cc0affef) - Var (name=c-79f261ee-e930-4af1-bc09-e637cc0affef, value=http://www.w3.org/2000/01/rdf-schema#subClassOf) - Var (name=-const-2, value=urn:test:litdups#Person, anonymous) - DoNotExpandSP - Var (name=s) - Var (name=-const-1, value=http://www.w3.org/1999/02/22-rdf-syntax-ns#type, anonymous) - Var (name=79f261ee-e930-4af1-bc09-e637cc0affef) -{code} - -Basically, we first find out (through the InferencingEngine) what triples have subclassof with Person. The InferencingEngine will do the graph analysis to find the both Student and UndergraduateStudent are Person classes. -Then this information is joined with the statement pattern {{(?s rdf:type ?inf)}} where {{?inf}} is the results from the InferencingEngine. - -h3. Rdfs:SubPropertyOf - -SubPropertyOf defines that a property can be an instance of another property. For example, a {{gradDegreeFrom subPropertyOf degreeFrom}}. - -Also, EquivalentProperty can be thought of as specialized SubPropertyOf relationship where if {{propA equivalentProperty propB}} then that means that {{propA subPropertyOf propB AND propB subPropertyOf propA}} - -Sample Code: -{code} -conn.add(new StatementImpl(vf.createURI(litdupsNS, "undergradDegreeFrom"), RDFS.SUBPROPERTYOF, vf.createURI(litdupsNS, "degreeFrom"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "gradDegreeFrom"), RDFS.SUBPROPERTYOF, vf.createURI(litdupsNS, "degreeFrom"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "degreeFrom"), RDFS.SUBPROPERTYOF, vf.createURI(litdupsNS, "memberOf"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "memberOf"), RDFS.SUBPROPERTYOF, vf.createURI(litdupsNS, "associatedWith"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "UgradA"), vf.createURI(litdupsNS, "undergradDegreeFrom"), vf.createURI(litdupsNS, "Harvard"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "GradB"), vf.createURI(litdupsNS, "gradDegreeFrom"), vf.createURI(litdupsNS, "Yale"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "ProfessorC"), vf.createURI(litdupsNS, "memberOf"), vf.createURI(litdupsNS, "Harvard"))); -conn.commit(); -{code} - -With query: -{code} -PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> -PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> -PREFIX lit: <urn:test:litdups#> -select * where {?s lit:memberOf lit:Harvard.} -{code} - -Will return results: -{code} -[s=urn:test:litdups#UgradA] -[s=urn:test:litdups#ProfessorC] -{code} - -Since UgradA has undergraduateDegreeFrom Harvard and ProfessorC is memberOf Harvard. - -h4. How it works - -This is very similar to the subClassOf relationship above. Basically the InferencingEngine provides what properties are subPropertyOf relationships with memberOf, and the second part of the Join checks to see if those properties are predicates with object "Harvard". - -Query Plan: -{code} -QueryRoot - Projection - ProjectionElemList - ProjectionElem "s" - Join - FixedStatementPattern - Var (name=0bad69f3-4769-4293-8318-e828b23dc52a) - Var (name=c-0bad69f3-4769-4293-8318-e828b23dc52a, value=http://www.w3.org/2000/01/rdf-schema#subPropertyOf) - Var (name=-const-1, value=urn:test:litdups#memberOf, anonymous) - DoNotExpandSP - Var (name=s) - Var (name=0bad69f3-4769-4293-8318-e828b23dc52a) - Var (name=-const-2, value=urn:test:litdups#Harvard, anonymous) -{code} - -h3. InverseOf - -InverseOf defines a property that is an inverse relation of another property. For example, a student who has a {{degreeFrom}} a University also means that the University {{hasAlumnus}} student. - -Code: -{code} -conn.add(new StatementImpl(vf.createURI(litdupsNS, "degreeFrom"), OWL.INVERSEOF, vf.createURI(litdupsNS, "hasAlumnus"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "UgradA"), vf.createURI(litdupsNS, "degreeFrom"), vf.createURI(litdupsNS, "Harvard"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "GradB"), vf.createURI(litdupsNS, "degreeFrom"), vf.createURI(litdupsNS, "Harvard"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "Harvard"), vf.createURI(litdupsNS, "hasAlumnus"), vf.createURI(litdupsNS, "AlumC"))); -conn.commit(); -{code} - -Query: -{code} -PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> -PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> -PREFIX lit: <urn:test:litdups#> -select * where {lit:Harvard lit:hasAlumnus ?s.} -{code} - -Result: -{code} -[s=urn:test:litdups#AlumC] -[s=urn:test:litdups#GradB] -[s=urn:test:litdups#UgradA] -{code} - -h4. How it works - -The query planner will expand the statement pattern {{Harvard hasAlumnus ?s}} to a Union between {{Harvard hasAlumnus ?s. and ?s degreeFrom Harvard}} - -As a caveat, it is important to note that in general Union queries do not have the best performance, so having a property that has an inverseOf and subPropertyOf, could cause a query plan that might take long depending on how the query planner orders the joins. - -Query Plan -{code} -QueryRoot - Projection - ProjectionElemList - ProjectionElem "s" - InferUnion - StatementPattern - Var (name=-const-1, value=urn:test:litdups#Harvard, anonymous) - Var (name=-const-2, value=urn:test:litdups#hasAlumnus, anonymous) - Var (name=s) - StatementPattern - Var (name=s) - Var (name=-const-2, value=urn:test:litdups#degreeFrom) - Var (name=-const-1, value=urn:test:litdups#Harvard, anonymous) -{code} - -h3. SymmetricProperty - -SymmetricProperty defines a relationship where, for example, if Bob is a friendOf Jeff, then Jeff is a friendOf Bob. (Hopefully) - -Code: -{code} -conn.add(new StatementImpl(vf.createURI(litdupsNS, "friendOf"), RDF.TYPE, OWL.SYMMETRICPROPERTY)); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "Bob"), vf.createURI(litdupsNS, "friendOf"), vf.createURI(litdupsNS, "Jeff"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "James"), vf.createURI(litdupsNS, "friendOf"), vf.createURI(litdupsNS, "Jeff"))); -conn.commit(); -{code} - -Query: -{code} -PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> -PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> -PREFIX lit: <urn:test:litdups#> -select * where {?s lit:friendOf lit:Bob.} -{code} - -Results: -{code} -[s=urn:test:litdups#Jeff] -{code} - -h4. How it works - -The query planner will recognize that {{friendOf}} is a SymmetricProperty and devise a Union to find the specified relationship and inverse. - -Query Plan: -{code} -QueryRoot - Projection - ProjectionElemList - ProjectionElem "s" - InferUnion - StatementPattern - Var (name=s) - Var (name=-const-1, value=urn:test:litdups#friendOf, anonymous) - Var (name=-const-2, value=urn:test:litdups#Bob, anonymous) - StatementPattern - Var (name=-const-2, value=urn:test:litdups#Bob, anonymous) - Var (name=-const-1, value=urn:test:litdups#friendOf, anonymous) - Var (name=s) -{code} - -h3. TransitiveProperty - -TransitiveProperty provides a transitive relationship between resources. For example, if Queens is subRegionOf NYC and NYC is subRegionOf NY, then Queens is transitively a subRegionOf NY. - -Code: -{code} -conn.add(new StatementImpl(vf.createURI(litdupsNS, "subRegionOf"), RDF.TYPE, OWL.TRANSITIVEPROPERTY)); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "Queens"), vf.createURI(litdupsNS, "subRegionOf"), vf.createURI(litdupsNS, "NYC"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "NYC"), vf.createURI(litdupsNS, "subRegionOf"), vf.createURI(litdupsNS, "NY"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "NY"), vf.createURI(litdupsNS, "subRegionOf"), vf.createURI(litdupsNS, "US"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "US"), vf.createURI(litdupsNS, "subRegionOf"), vf.createURI(litdupsNS, "NorthAmerica"))); -conn.add(new StatementImpl(vf.createURI(litdupsNS, "NorthAmerica"), vf.createURI(litdupsNS, "subRegionOf"), vf.createURI(litdupsNS, "World"))); -conn.commit(); -{code} - -Query: -{code} -PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> -PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> -PREFIX lit: <urn:test:litdups#> -select * where {?s lit:subRegionOf lit:NorthAmerica.} -{code} - -Results: -{code} -[s=urn:test:litdups#Queens] -[s=urn:test:litdups#NYC] -[s=urn:test:litdups#NY] -[s=urn:test:litdups#US] -{code} - -h4. How it works - -The TransitiveProperty relationship works by running recursive queries till all the results are returned. - -It is important to note that certain TransitiveProperty relationships will not work: -* Open ended property: ?s subRegionOf ?o (At least one of the properties must be filled or will be filled as the query gets answered) -* Closed property: Queens subRegionOf NY (At least one of the properties must be empty) - -We are working on fixing these issues. - -Query Plan: -{code} -QueryRoot - Projection - ProjectionElemList - ProjectionElem "s" - TransitivePropertySP - Var (name=s) - Var (name=-const-1, value=urn:test:litdups#subRegionOf, anonymous) - Var (name=-const-2, value=urn:test:litdups#NorthAmerica, anonymous) -{code} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/sm-namedgraph.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/sm-namedgraph.conf b/extras/rya.manual/src/main/webapp/sm-namedgraph.conf deleted file mode 100644 index ce2a0da..0000000 --- a/extras/rya.manual/src/main/webapp/sm-namedgraph.conf +++ /dev/null @@ -1,129 +0,0 @@ -h1. Named Graphs - -Named graphs are supported simply in the Rdf Store in a few ways. OpenRdf supports sending {{contexts}} as each triple is saved. - -h2. Simple Named Graph Load and Query - -Here is a very simple example of using the API to Insert data in named graphs and querying with Sparql - -First we will define a Trig document to load -Trig document -{code} -@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . -@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . -@prefix swp: <http://www.w3.org/2004/03/trix/swp-1/> . -@prefix dc: <http://purl.org/dc/elements/1.1/> . -@prefix ex: <http://www.example.org/vocabulary#> . -@prefix : <http://www.example.org/exampleDocument#> . -:G1 { :Monica ex:name "Monica Murphy" . - :Monica ex:homepage <http://www.monicamurphy.org> . - :Monica ex:email <mailto:[email protected]> . - :Monica ex:hasSkill ex:Management } - -:G2 { :Monica rdf:type ex:Person . - :Monica ex:hasSkill ex:Programming } - -:G4 { :Phobe ex:name "Phobe Buffet" } - -:G3 { :G1 swp:assertedBy _:w1 . - _:w1 swp:authority :Chris . - _:w1 dc:date "2003-10-02"^^xsd:date . - :G2 swp:quotedBy _:w2 . - :G4 swp:assertedBy _:w2 . - _:w2 dc:date "2003-09-03"^^xsd:date . - _:w2 swp:authority :Tom . - :Chris rdf:type ex:Person . - :Chris ex:email <mailto:[email protected]>. - :Tom rdf:type ex:Person . - :Tom ex:email <mailto:[email protected]>} -{code} - -We will assume that this file is saved on your classpath somewhere at {{<TRIG_FILE>}} - -Load data through API: -{code} -InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("namedgraphs.trig"); -RepositoryConnection conn = repository.getConnection(); -conn.add(stream, "", RDFFormat.TRIG); -conn.commit(); -{code} - -Now that the data is loaded we can easily query it. For example, we will query to find what {{hasSkill}} is defined in graph G2, and relate that to someone defined in G1. - -Query: -{code} -PREFIX ex: <http://www.example.org/exampleDocument#> -PREFIX voc: <http://www.example.org/vocabulary#> -PREFIX foaf: <http://xmlns.com/foaf/0.1/> -PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> - -SELECT * -WHERE -{ - GRAPH ex:G1 - { - ?m voc:name ?name ; - voc:homepage ?hp . - } . - GRAPH ex:G2 - { - ?m voc:hasSkill ?skill . - } . -} -{code} - -Results: -{code} -[hp=http://www.monicamurphy.org;m=http://www.example.org/exampleDocument#Monica;skill=http://www.example.org/vocabulary#Programming;name="Monica Murphy"] -{code} - -Here is the Query Plan as well: -{code} -QueryRoot - Projection - ProjectionElemList - ProjectionElem "m" - ProjectionElem "name" - ProjectionElem "hp" - ProjectionElem "skill" - Join - Join - StatementPattern FROM NAMED CONTEXT - Var (name=m) - Var (name=-const-2, value=http://www.example.org/vocabulary#name, anonymous) - Var (name=name) - Var (name=-const-1, value=http://www.example.org/exampleDocument#G1, anonymous) - StatementPattern FROM NAMED CONTEXT - Var (name=m) - Var (name=-const-3, value=http://www.example.org/vocabulary#homepage, anonymous) - Var (name=hp) - Var (name=-const-1, value=http://www.example.org/exampleDocument#G1, anonymous) - StatementPattern FROM NAMED CONTEXT - Var (name=m) - Var (name=-const-5, value=http://www.example.org/vocabulary#hasSkill, anonymous) - Var (name=skill) - Var (name=-const-4, value=http://www.example.org/exampleDocument#G2, anonymous) -{code} - -h2. Inserting named graph data through Sparql - -The new Sparql update standard provides another way to insert data, even into named graphs. - -First the insert update: -{code} -PREFIX dc: <http://purl.org/dc/elements/1.1/> -PREFIX ex: <http://example/addresses#> -INSERT DATA -{ - GRAPH ex:G1 { - <http://example/book3> dc:title "A new book" ; - dc:creator "A.N.Other" . - } -} -{code} - -To perform this update, it requires different code than querying the data directly: -{code} -Update update = conn.prepareUpdate(QueryLanguage.SPARQL, insert); -update.execute(); -{code} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/sm-simpleaqr.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/sm-simpleaqr.conf b/extras/rya.manual/src/main/webapp/sm-simpleaqr.conf deleted file mode 100644 index 7616197..0000000 --- a/extras/rya.manual/src/main/webapp/sm-simpleaqr.conf +++ /dev/null @@ -1,54 +0,0 @@ -h1. Simple Add Query and Remove of Statements - -This quick tutorial will give a small example on how to add, query, and remove statements from Cloudbase - -h2. Code - -{code} -//setup -Connector connector = new ZooKeeperInstance("cbinstance", "zkserver:port").getConnector("cbuser", "cbpassword"); -final RdfCloudTripleStore store = new RdfCloudTripleStore(); -AccumuloRyaDAO crdfdao = new AccumuloRyaDAO(); -crdfdao.setConnector(connector); - -AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration(); -conf.setTablePrefix("rts_"); -conf.setDisplayQueryPlan(true); -crdfdao.setConf(conf); -store.setRdfDao(crdfdao); - -ProspectorServiceEvalStatsDAO evalDao = new ProspectorServiceEvalStatsDAO(connector, conf); -evalDao.init(); -store.setRdfEvalStatsDAO(evalDao); - -InferenceEngine inferenceEngine = new InferenceEngine(); -inferenceEngine.setRdfDao(crdfdao); -inferenceEngine.setConf(conf); -store.setInferenceEngine(inferenceEngine); - -Repository myRepository = new RyaSailRepository(store); -myRepository.initialize(); -RepositoryConnection conn = myRepository.getConnection(); - -//define and add statement -String litdupsNS = "urn:test:litdups#"; -URI cpu = vf.createURI(litdupsNS, "cpu"); -URI loadPerc = vf.createURI(litdupsNS, "loadPerc"); -URI uri1 = vf.createURI(litdupsNS, "uri1"); -conn.add(cpu, loadPerc, uri1); -conn.commit(); - -//query for all statements that have subject=cpu and pred=loadPerc (wildcard object) -RepositoryResult<Statement> result = conn.getStatements(cpu, loadPerc, null, true) -while(result.hasNext()) { - System.out.println(result.next()); -} -result.close(); - -//remove statement -conn.remove(cpu, loadPerc, uri1); - -//close -conn.close(); -myRepository.shutDown(); -{code} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/sm-sparqlquery.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/sm-sparqlquery.conf b/extras/rya.manual/src/main/webapp/sm-sparqlquery.conf deleted file mode 100644 index 985e21a..0000000 --- a/extras/rya.manual/src/main/webapp/sm-sparqlquery.conf +++ /dev/null @@ -1,58 +0,0 @@ -h1. Simple Add Query and Remove of Statements - -This quick tutorial will give a small example on how to query data with Sparql - -h2. Code - -{code} -//setup -Connector connector = new ZooKeeperInstance("cbinstance", "zkserver:port").getConnector("cbuser", "cbpassword"); -final RdfCloudTripleStore store = new RdfCloudTripleStore(); -AccumuloRyaDAO crdfdao = new AccumuloRyaDAO(); -crdfdao.setConnector(connector); - -AccumuloRdfConfiguration conf = new AccumuloRdfConfiguration(); -conf.setTablePrefix("rts_"); -conf.setDisplayQueryPlan(true); -crdfdao.setConf(conf); -store.setRdfDao(crdfdao); - -ProspectorServiceEvalStatsDAO evalDao = new ProspectorServiceEvalStatsDAO(connector, conf); -evalDao.init(); -store.setRdfEvalStatsDAO(evalDao); - -InferenceEngine inferenceEngine = new InferenceEngine(); -inferenceEngine.setRdfDao(crdfdao); -inferenceEngine.setConf(conf); -store.setInferenceEngine(inferenceEngine); - -Repository myRepository = new RyaSailRepository(store); -myRepository.initialize(); -RepositoryConnection conn = myRepository.getConnection(); - -//define and add statements -String litdupsNS = "urn:test:litdups#"; -URI cpu = vf.createURI(litdupsNS, "cpu"); -URI loadPerc = vf.createURI(litdupsNS, "loadPerc"); -URI uri1 = vf.createURI(litdupsNS, "uri1"); -URI pred2 = vf.createURI(litdupsNS, "pred2"); -URI uri2 = vf.createURI(litdupsNS, "uri2"); -conn.add(cpu, loadPerc, uri1); -conn.commit(); - -//query using sparql -String query = "select * where {" + - "?x <" + loadPerc.stringValue() + "> ?o1." + - "?x <" + pred2.stringValue() + "> ?o2." + - "}"; -TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, query); -TupleQueryResult result = tupleQuery.evaluate(); -while(result.hasNext()) { - System.out.println(result.next()); -} -result.close(); - -//close -conn.close(); -myRepository.shutDown(); -{code} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/ce4a10ff/extras/rya.manual/src/main/webapp/sm-updatedata.conf ---------------------------------------------------------------------- diff --git a/extras/rya.manual/src/main/webapp/sm-updatedata.conf b/extras/rya.manual/src/main/webapp/sm-updatedata.conf deleted file mode 100644 index b3e3a5b..0000000 --- a/extras/rya.manual/src/main/webapp/sm-updatedata.conf +++ /dev/null @@ -1,56 +0,0 @@ -h1. Sparql Update - -OpenRDF supports the Sparql Update functionality. Here are a few samples: - -Remember, you have to use {{RepositoryConnection.prepareUpdate(..)}} to perform these queries - -Insert: -{code} -PREFIX dc: <http://purl.org/dc/elements/1.1/> -INSERT DATA -{ <http://example/book3> dc:title "A new book" ; - dc:creator "A.N.Other" . -} -{code} - -Delete: -{code} -PREFIX dc: <http://purl.org/dc/elements/1.1/> -DELETE DATA -{ <http://example/book3> dc:title "A new book" ; - dc:creator "A.N.Other" . -} -{code} - -Update: -{code} -PREFIX dc: <http://purl.org/dc/elements/1.1/> -DELETE { ?book dc:title ?title } -INSERT { ?book dc:title "A newer book". ?book dc:add "Additional Info" } -WHERE - { ?book dc:creator "A.N.Other" . - } -{code} - -Insert Named Graph: -{code} -PREFIX dc: <http://purl.org/dc/elements/1.1/> -PREFIX ex: <http://example/addresses#> -INSERT DATA -{ GRAPH ex:G1 { -<http://example/book3> dc:title "A new book" ; - dc:creator "A.N.Other" . -} -} -{code} - -Update Named Graph: -{code} -PREFIX dc: <http://purl.org/dc/elements/1.1/> -WITH <http://example/addresses#G1> -DELETE { ?book dc:title ?title } -INSERT { ?book dc:title "A newer book". ?book dc:add "Additional Info" } -WHERE - { ?book dc:creator "A.N.Other" . - } -{code}
