Merge branch 'maint-rel-1.6' into develop

This commit is contained in:
brianjlowe 2014-03-28 15:44:30 -04:00
commit aca21a3865
11 changed files with 1467 additions and 126 deletions

View file

@ -121,14 +121,17 @@
<runLicenserScript productname="Vitro core" propertiesfile="${licenser.core.properties.file}" />
</target>
<!-- =================================
target: acceptance
================================= -->
<target name="acceptance" description="--> Run the Selenium acceptance tests.">
<ant dir="${vitro.core.dir}/utilities/testrunner" target="run" inheritall="false">
<property name="acceptance.dir" location="${basedir}/utilities/acceptance-tests" />
<property name="acceptance.batch" value="${acceptance.batch}" />
</ant>
</target>
<!-- =================================
target: deployTestApp
================================= -->
<target name="deployTestApp" depends="deployProperties" description="description">
<property name="testApp.webapp.dir" value="${tomcat.home}/webapps/testApp" />
<property name="testApp.source.dir" value="utilities/acceptance-tests/testApp" />
<mkdir dir="${testApp.webapp.dir}" />
<sync todir="${testApp.webapp.dir}" includeemptydirs="true">
<fileset dir="${testApp.source.dir}" />
</sync>
</target>
</project>

View file

@ -7,5 +7,6 @@ CONSTRUCT {
} WHERE {
?s vivo:orcidId ?orcidString
FILTER(isLiteral(?orcidString))
FILTER (regex(str(?orcidString), "^[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9]([0-9]|X)$"))
BIND(IRI(concat("http://orcid.org/", str(?orcidString))) AS ?orcidURI)
}

View file

@ -6,4 +6,5 @@ CONSTRUCT {
} WHERE {
?s vivo:orcidId ?orcidString
FILTER(isLiteral(?orcidString))
FILTER (regex(str(?orcidString), "^[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9]([0-9]|X)$"))
}

View file

@ -1392,6 +1392,11 @@ there is a measurement process p that has specified output m, a measurement datu
<!-- http://vivoweb.org/ontology/core#conceptAssociatedWith -->
<owl:ObjectProperty rdf:about="http://vivoweb.org/ontology/core#conceptAssociatedWith">
</owl:ObjectProperty>
<!-- http://vivoweb.org/ontology/core#hasAssociatedConcept -->
<owl:ObjectProperty rdf:about="http://vivoweb.org/ontology/core#hasAssociatedConcept">

File diff suppressed because it is too large Load diff

View file

@ -1,115 +0,0 @@
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<script src="js/jquery.js"></script>
<script>
function TestLOD() {
self = this;
this.setup = setupButtons;
this.uri = "lodFacultyMember";
function setupButtons() {
document.getElementById("RDFXML_button").onclick = function() {
requestWithAcceptHeader(self.uri, "application/rdf+xml");
}
document.getElementById("N3_button").onclick = function() {
requestWithAcceptHeader(self.uri, "text/n3");
}
document.getElementById("TTL_button").onclick = function() {
requestWithAcceptHeader(self.uri, "text/turtle");
}
document.getElementById("JSONLD_button").onclick = function() {
requestWithAcceptHeader(self.uri, "application/json");
}
document.getElementById("BOGUS_URI_button").onclick = function() {
requestWithAcceptHeader(self.uri + "XX", "application/rdf+xml");
}
document.getElementById("BOGUS_ACCEPT_button").onclick = function() {
requestWithAcceptHeader(self.uri, "image/png");
}
document.getElementById("BOGUS_FORMAT_button").onclick = function() {
requestWithFormat(self.uri, "bogus");
}
document.getElementById("BOGUS_EXTENSION_button").onclick = function() {
requestWithExtension(self.uri, "bogus");
}
document.getElementById("CLEAR_button").onclick = clearResult
}
function requestWithAcceptHeader(uri, mimetype) {
$.ajax({
url: "individual/" + uri,
headers: {Accept: mimetype},
dataType: "text",
complete: displayResult
});
}
function requestWithFormat(uri, format) {
$.ajax({
url: "individual/" + uri + "?format=" + format,
dataType: "text",
complete: displayResult
});
}
function requestWithExtension(uri, extension) {
$.ajax({
url: "individual/" + uri + "/" + uri + "." + extension,
dataType: "text",
complete: displayResult
});
}
function displayResult(xhr, status) {
$("#responseCode").text(xhr.status);
$("#mimeType").text(getMimeType(xhr));
$("#responseText").text(xhr.responseText);
}
function clearResult() {
$("#responseCode").text("000");
$("#mimeType").text("No type");
$("#responseText").text("No text");
}
function getMimeType(xhr) {
var header = xhr.getResponseHeader("Content-Type");
var where = header.indexOf(";");
if (where == -1) {
return header;
} else {
return header.substring(0, where);
}
}
}
$(document).ready(function() {
new TestLOD().setup();
});
</script>
<h1>Test the Linked Open Data requests</h1>
<h3>Try various accept headers</h3>
<input type="submit" value="get RDFXML" id="RDFXML_button">
<input type="submit" value="get N3" id="N3_button">
<input type="submit" value="get TTL" id="TTL_button">
<input type="submit" value="get JSONLD" id="JSONLD_button">
<h3>Try non-existent URI with RDFXML accept header</h3>
<input type="submit" value="get BOGUS Individual" id="BOGUS_URI_button">
<input type="submit" value="use BOGUS Accept header" id="BOGUS_ACCEPT_button">
<input type="submit" value="use BOGUS format" id="BOGUS_FORMAT_button">
<input type="submit" value="use BOGUS extension" id="BOGUS_EXTENSION_button">
<h3>Response data</h3>
<input type="submit" value="CLEAR response" id="CLEAR_button">
<div>Response code is <b><span id="responseCode">000</span></b></div>
<div>MIME type is <b><span id="mimeType">No type</span></b></div>
<div>Text is:</div>
<div id="responseText" style="font-size:small;">No text</div>

View file

@ -1,8 +1,6 @@
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix auth: <http://vitro.mannlib.cornell.edu/ns/vitro/authorization#> .
@prefix simplePermission: <java:edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission#> .
@prefix displayByRole: <java:edu.cornell.mannlib.vitro.webapp.auth.permissions.DisplayByRolePermission#> .
@prefix editByRole: <java:edu.cornell.mannlib.vitro.webapp.auth.permissions.EditByRolePermission#> .
auth:ADMIN
auth:hasPermission simplePermission:UseSparqlUpdateApi ;

View file

@ -0,0 +1,188 @@
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<script src="js/jquery.js"></script>
<script>
function TestLOD() {
self = this;
this.setup = setupButtons;
this.uri = "lodFacultyMember";
function setupButtons() {
<!-- Extension buttons -->
document.getElementById("RDFXML_EXTENSION_button").onclick = function() {
requestWithExtension(self.uri, "rdf");
}
document.getElementById("N3_EXTENSION_button").onclick = function() {
requestWithExtension(self.uri, "n3");
}
document.getElementById("TTL_EXTENSION_button").onclick = function() {
requestWithExtension(self.uri, "ttl");
}
document.getElementById("JSONLD_EXTENSION_button").onclick = function() {
requestWithExtension(self.uri, "jsonld");
}
<!-- Format buttons -->
document.getElementById("RDFXML_FORMAT_button").onclick = function() {
requestWithFormat(self.uri, "rdfxml");
}
document.getElementById("N3_FORMAT_button").onclick = function() {
requestWithFormat(self.uri, "n3");
}
document.getElementById("TTL_FORMAT_button").onclick = function() {
requestWithFormat(self.uri, "ttl");
}
document.getElementById("JSONLD_FORMAT_button").onclick = function() {
requestWithFormat(self.uri, "jsonld");
}
<!-- Accept header buttons -->
document.getElementById("RDFXML_HEADER_button").onclick = function() {
requestWithAcceptHeader(self.uri, "application/rdf+xml");
}
document.getElementById("N3_HEADER_button").onclick = function() {
requestWithAcceptHeader(self.uri, "text/n3");
}
document.getElementById("TTL_HEADER_button").onclick = function() {
requestWithAcceptHeader(self.uri, "text/turtle");
}
document.getElementById("JSONLD_HEADER_button").onclick = function() {
requestWithAcceptHeader(self.uri, "application/json");
}
<!-- Failure buttons -->
document.getElementById("BOGUS_URI_button").onclick = function() {
requestWithAcceptHeader(self.uri + "XX", "application/rdf+xml");
}
document.getElementById("BOGUS_ACCEPT_button").onclick = function() {
requestWithAcceptHeader(self.uri, "image/png");
}
document.getElementById("BOGUS_FORMAT_button").onclick = function() {
requestWithFormat(self.uri, "bogus");
}
document.getElementById("BOGUS_EXTENSION_button").onclick = function() {
requestWithExtension(self.uri, "bogus");
}
document.getElementById("CLEAR_REQUEST_button").onclick = clearRequest
document.getElementById("CLEAR_RESPONSE_button").onclick = clearResult
}
function requestWithAcceptHeader(uri, mimetype) {
var parms = {
url: "/vivo/individual/" + uri,
headers: {Accept: mimetype},
dataType: "text",
complete: displayResult
};
displayRequest(parms);
$.ajax(parms);
}
function requestWithFormat(uri, format) {
var parms = {
url: "/vivo/individual/" + uri + "?format=" + format,
dataType: "text",
complete: displayResult
};
displayRequest(parms);
$.ajax(parms);
}
function requestWithExtension(uri, extension) {
var parms = {
url: "/vivo/individual/" + uri + "/" + uri + "." + extension,
dataType: "text",
complete: displayResult
};
displayRequest(parms);
$.ajax(parms);
}
function displayRequest(parms) {
clearRequest();
$("#requestUrl").text(parms.url);
if (parms.headers) {
$("#acceptHeader").text(parms.headers.Accept);
}
}
function displayResult(xhr, status) {
clearResult();
$("#responseCode").text(xhr.status);
$("#mimeType").text(getMimeType(xhr));
$("#responseText").text(xhr.responseText);
}
function clearRequest() {
$("#requestUrl").text("No URL");
$("#acceptHeader").text("No header");
}
function clearResult() {
$("#responseCode").text("000");
$("#mimeType").text("No type");
$("#responseText").text("No text");
}
function getMimeType(xhr) {
var header = xhr.getResponseHeader("Content-Type");
var where = header.indexOf(";");
if (where == -1) {
return header;
} else {
return header.substring(0, where);
}
}
}
$(document).ready(function() {
new TestLOD().setup();
});
</script>
<h1>Test the Linked Open Data requests</h1>
<h3>Request by extension</h3>
<input type="submit" value="get RDFXML by extension" id="RDFXML_EXTENSION_button">
<input type="submit" value="get N3 by extension" id="N3_EXTENSION_button">
<input type="submit" value="get TTL by extension" id="TTL_EXTENSION_button">
<input type="submit" value="get JSONLD by extension" id="JSONLD_EXTENSION_button">
<h3>Request by format parameters</h3>
<input type="submit" value="get RDFXML by format parameter" id="RDFXML_FORMAT_button">
<input type="submit" value="get N3 by format parameter" id="N3_FORMAT_button">
<input type="submit" value="get TTL by format parameter" id="TTL_FORMAT_button">
<input type="submit" value="get JSONLD by format parameter" id="JSONLD_FORMAT_button">
<h3>Request by accept headers</h3>
<input type="submit" value="get RDFXML by accept header" id="RDFXML_HEADER_button">
<input type="submit" value="get N3 by accept header" id="N3_HEADER_button">
<input type="submit" value="get TTL by accept header" id="TTL_HEADER_button">
<input type="submit" value="get JSONLD by accept header" id="JSONLD_HEADER_button">
<h3>An assortment of failures</h3>
<input type="submit" value="get BOGUS Individual" id="BOGUS_URI_button">
<input type="submit" value="use BOGUS Accept header" id="BOGUS_ACCEPT_button">
<input type="submit" value="use BOGUS format" id="BOGUS_FORMAT_button">
<input type="submit" value="use BOGUS extension" id="BOGUS_EXTENSION_button">
<h2>Request data</h2>
<input type="submit" value="CLEAR request" id="CLEAR_REQUEST_button">
<div>Request URL is <b><span id="requestUrl">No URL</span></b></div>
<div>Accept header is <b><span id="acceptHeader">No header</span></b></div>
<h2>Response data</h2>
<input type="submit" value="CLEAR response" id="CLEAR_RESPONSE_button">
<div>Response code is <b><span id="responseCode">000</span></b></div>
<div>MIME type is <b><span id="mimeType">No type</span></b></div>
<div>Text is:</div>
<div><pre id="responseText" style="font-size:small;">No text</pre></div>

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,76 @@
=begin
go through the lines of the file.
If you find a line that matches
vitro:hiddenFromDisplayBelowRoleLevelAnnot
and followed by a line that matches
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
--where "public" may be any string
Insert 2 lines after the second one, replacing Display by Publish on the first, and duplicating the second.
If you find a line that contains
vitro:hiddenFromDisplayBelowRoleLevelAnnot
and does not match it, or is not followed by a line that matches
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
Issue a warning and continue.
=end
FILE_PATH = "../../rdf/tbox/firsttime/initialTBoxAnnotations.n3"
DISPLAY_URI = "vitro:hiddenFromDisplayBelowRoleLevelAnnot"
DISPLAY_LOCALNAME = "hiddenFromDisplayBelowRoleLevelAnnot"
def read_the_file()
@lines = File.readlines(FILE_PATH);
end
def scan_the_lines()
@lines.each_index do |i|
@line1 = @lines[i]
@line2 = @lines[i+1]
@index = i
if linesContainMatch()
replicateProperty()
else
checkForMismatch()
end
end
end
def linesContainMatch()
return false unless @line1.strip() == DISPLAY_URI
return false unless @line2
return false unless m = @line2.match(/<http:\/\/vitro\.mannlib\.cornell\.edu\/ns\/vitro\/role#(.*)>/)
@role = m[1]
end
def replicateProperty()
newline1 = @line1.gsub(/Display/, "Publish")
newline2 = @line2.gsub(/#.*>/, "##{@role}>")
@lines.insert(@index + 2, newline1, newline2)
end
def checkForMismatch()
return false unless @line1.strip() == DISPLAY_URI
if !@line2
puts "Found display property at end of file"
return
end
if !@line2.match(/^\s*<http:\/\/vitro\.mannlib\.cornell\.edu\/ns\/vitro\/role#(.*)>\s*;\s*$/)
puts "Found bogus clutter in the second line (#{@index}) '#{@line2}'"
return
end
end
def write_the_file()
f = File.new(FILE_PATH+"-modified", "w")
@lines.each() do |line|
f.write(line)
end
f.close()
end
read_the_file()
scan_the_lines()
write_the_file()

View file

@ -0,0 +1,78 @@
=begin
go through the lines of the file.
If you find a line that matches
vitro:hiddenFromDisplayBelowRoleLevelAnnot
and followed by a line that matches
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
--where "public" may be any string
Insert 2 lines after the second one, replacing Display by Publish on the first, and duplicating the second.
If you find a line that contains
vitro:hiddenFromDisplayBelowRoleLevelAnnot
and does not match it, or is not followed by a line that matches
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
Issue a warning and continue.
<http://vitro.mannlib.cornell.edu/ns/vitro/0.7#hiddenFromDisplayBelowRoleLevelAnnot>
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
=end
FILE_PATH = "/Users/jeb228/Documents/EclipseStuff/vivoWorkspace/vivoCornell/productMods/bjl23/ingest/weill/grants/submodels/vivo-tbox2.ttl"
DISPLAY_URI = "<http://vitro.mannlib.cornell.edu/ns/vitro/0.7#hiddenFromDisplayBelowRoleLevelAnnot>"
def read_the_file()
@lines = File.readlines(FILE_PATH);
end
def scan_the_lines()
@lines.each_index do |i|
@line1 = @lines[i]
@line2 = @lines[i+1]
@index = i
if linesContainMatch()
replicateProperty()
else
checkForMismatch()
end
end
end
def linesContainMatch()
return false unless @line1.strip() == DISPLAY_URI
return false unless @line2
return false unless m = @line2.match(/<http:\/\/vitro\.mannlib\.cornell\.edu\/ns\/vitro\/role#(.*)>/)
@role = m[1]
end
def replicateProperty()
newline1 = @line1.gsub(/Display/, "Publish")
newline2 = @line2.gsub(/#.*>/, "##{@role}>")
@lines.insert(@index + 2, newline1, newline2)
end
def checkForMismatch()
return false unless @line1.strip() == DISPLAY_URI
if !@line2
puts "Found display property at end of file"
return
end
if !@line2.match(/^\s*<http:\/\/vitro\.mannlib\.cornell\.edu\/ns\/vitro\/role#(.*)>\s*;\s*$/)
puts "Found bogus clutter in the second line (#{@index}) '#{@line2}'"
return
end
end
def write_the_file()
f = File.new(FILE_PATH+"-modified", "w")
@lines.each() do |line|
f.write(line)
end
f.close()
end
read_the_file()
scan_the_lines()
write_the_file()