Compare commits
332 commits
texts
...
texts-1.12
Author | SHA1 | Date | |
---|---|---|---|
a92d5cb1d7 | |||
7e063e8b31 | |||
0834a6c645 | |||
caf6989242 | |||
d7452c12a6 | |||
b0e473ed8a | |||
fa6ac710fd | |||
e50c4320a4 | |||
8a067151df | |||
60bab69b2a | |||
f1e2dfab19 | |||
6a5e9cefa3 | |||
217e6b0a1e | |||
aef82eef63 | |||
7d0c6bfb0a | |||
c799813ece | |||
c9498128ab | |||
451ab36f3b | |||
3a45103309 | |||
52d074bca6 | |||
![]() |
da59f61b14 | ||
![]() |
a93063a517 | ||
![]() |
7c3955dd67 | ||
![]() |
d2770aaf96 | ||
![]() |
ac254921bd | ||
338b37e22e | |||
d5508e2eb4 | |||
![]() |
6b7818f67a | ||
1096ae0028 | |||
f7a5f13d8c | |||
5499a1307f | |||
e8dccba537 | |||
dc671a7fdb | |||
![]() |
659f740dba | ||
![]() |
b0fd2b3706 | ||
![]() |
7246f15335 | ||
![]() |
b5448d5481 | ||
2f5d4a8f05 | |||
636b20426a | |||
e9a587e3e9 | |||
![]() |
e15274b4d4 | ||
![]() |
d1987ebc0e | ||
![]() |
3153fd6b39 | ||
![]() |
4eab8da190 | ||
63a5b2251c | |||
![]() |
755ac5d01e | ||
![]() |
79a619a6d5 | ||
![]() |
780a8d916a | ||
![]() |
a3768cdc78 | ||
7c1d0457cf | |||
![]() |
89e5911acc | ||
![]() |
8329e7cdd8 | ||
![]() |
026beb1487 | ||
![]() |
fb28c5b176 | ||
![]() |
86d865788a | ||
![]() |
31920a9874 | ||
![]() |
9230a9963c | ||
![]() |
1bbef343d1 | ||
![]() |
9d91ccfcec | ||
![]() |
26454d5750 | ||
![]() |
90faaabf60 | ||
![]() |
5bb2ad204c | ||
![]() |
09825f9f9e | ||
562b590558 | |||
![]() |
c34b1f5764 | ||
0305d0ca74 | |||
![]() |
3bfce67d4e | ||
![]() |
4ade3193ab | ||
![]() |
2b3cb33199 | ||
![]() |
f9ab3b077c | ||
![]() |
fa71e8a5d5 | ||
![]() |
64ad1ebeeb | ||
![]() |
264c50bea8 | ||
![]() |
9c619a44a5 | ||
![]() |
da3d55eac9 | ||
50d93687b0 | |||
2745fa9561 | |||
![]() |
c26c1d5dca | ||
![]() |
c624fff542 | ||
![]() |
c884c4b57a | ||
abb4e97d0f | |||
![]() |
da421d5422 | ||
![]() |
bb6c750af2 | ||
![]() |
53447f0ccd | ||
![]() |
0dceb12319 | ||
![]() |
4499275aec | ||
![]() |
669c1ee99e | ||
![]() |
7079b0eb18 | ||
![]() |
d80beb1563 | ||
![]() |
c77e707cea | ||
![]() |
1331866523 | ||
![]() |
68de87ec7d | ||
![]() |
3c9bef1e76 | ||
![]() |
686fbc7af1 | ||
![]() |
3bc142336b | ||
4974ae3034 | |||
![]() |
771468900b | ||
![]() |
968ca06db7 | ||
![]() |
8271d40227 | ||
![]() |
347bcb6c2a | ||
60409e04a3 | |||
![]() |
784c6c38cd | ||
05959802f1 | |||
![]() |
5e74856b2b | ||
![]() |
69c5576aff | ||
![]() |
1db0879af5 | ||
![]() |
cd14bb3303 | ||
![]() |
02e7a9d520 | ||
![]() |
f508488636 | ||
![]() |
dfeb5a42dd | ||
df1e871bdb | |||
520ed8350b | |||
![]() |
7b55da81b3 | ||
61a85d66c1 | |||
de5a117418 | |||
d98ec70ff7 | |||
5f6cff9824 | |||
c8496ffe2f | |||
15b4c83d56 | |||
4907c1af50 | |||
48fac9b610 | |||
3f36a7858c | |||
0dbe7232de | |||
a911179bba | |||
8fe843ae82 | |||
5cb579fee9 | |||
6a28e53167 | |||
8b31dd7db2 | |||
6be08841de | |||
6fea9b520f | |||
d3e7cd6349 | |||
![]() |
21c9d6113c | ||
![]() |
bf4f317453 | ||
ed0d1816d3 | |||
9d9d936046 | |||
cfc3e7dd65 | |||
![]() |
88443e073f | ||
![]() |
624bb10474 | ||
e17f52ae15 | |||
![]() |
c28dc4f897 | ||
![]() |
3b031516ba | ||
40eda402a9 | |||
011f7e6b46 | |||
af1ae59fc7 | |||
7ca422f46b | |||
da8f4b32eb | |||
![]() |
30d283ccfb | ||
![]() |
f00630d4d8 | ||
![]() |
16b916b199 | ||
![]() |
74e3796005 | ||
![]() |
eff334b957 | ||
![]() |
3ffa740752 | ||
![]() |
15c290d134 | ||
![]() |
d7c6cd5193 | ||
![]() |
315806ec1f | ||
![]() |
bf05fce98d | ||
![]() |
35a5468728 | ||
![]() |
60d428e714 | ||
![]() |
524b7215ad | ||
![]() |
4a434bc2d4 | ||
![]() |
2b79bdf551 | ||
![]() |
1bce24a0a4 | ||
![]() |
11ce41105b | ||
![]() |
fcaa8be6e6 | ||
![]() |
bfb8bae2e4 | ||
![]() |
973dcff7d0 | ||
![]() |
b4e229a114 | ||
![]() |
5fa87d4eef | ||
![]() |
0b08ae77a7 | ||
![]() |
1f43f6f552 | ||
![]() |
fac88d3c87 | ||
![]() |
98bf4a8f85 | ||
![]() |
cc796ce5cc | ||
![]() |
7e15104fe5 | ||
![]() |
72b388a045 | ||
![]() |
e248385c5c | ||
![]() |
a1850f2118 | ||
![]() |
d4885f8a81 | ||
![]() |
6880ccfb69 | ||
![]() |
6a5d72a59d | ||
![]() |
ec3ce41273 | ||
![]() |
f7398c8965 | ||
![]() |
cb1750bef7 | ||
![]() |
0cdb0cf30d | ||
![]() |
134acbc983 | ||
![]() |
66ac0649f2 | ||
![]() |
78beb1f24d | ||
![]() |
3ed254ee20 | ||
![]() |
d6d874c920 | ||
![]() |
6faa279b82 | ||
![]() |
87d2c35d13 | ||
![]() |
31ac1403a0 | ||
![]() |
25d5c0d25c | ||
![]() |
836c390452 | ||
![]() |
12538e5545 | ||
![]() |
976d2743c8 | ||
![]() |
e92b3682d6 | ||
![]() |
7f74cf9784 | ||
![]() |
e5c99a01e3 | ||
![]() |
4af60eba58 | ||
![]() |
c5f648c498 | ||
65c45626ee | |||
33dd87477e | |||
69ea0f31e2 | |||
c0cb26f09c | |||
a28a1aacc0 | |||
a851764012 | |||
ab6e02cc5e | |||
7a805fa4f6 | |||
5442327c71 | |||
df2dd1205b | |||
7d79da1bc4 | |||
26a5c16bd4 | |||
eb0e20d90f | |||
ec42cd42da | |||
45a9973802 | |||
4107942ee5 | |||
1dd9329bc3 | |||
9183f18eeb | |||
62c5714855 | |||
9296999194 | |||
0a53e51a78 | |||
308ba8dcf9 | |||
8225ba3d44 | |||
369063ead4 | |||
0906289de7 | |||
d8d364e91c | |||
b0190d39f0 | |||
d49f9382f4 | |||
07626aec70 | |||
41dfe40b4f | |||
b72fa02b9f | |||
a5d7c99c79 | |||
8d2ecd7594 | |||
512ed2d925 | |||
da972cf8b9 | |||
ec06511f20 | |||
2dcc4c25f2 | |||
7e4b48bf28 | |||
fec5492fe1 | |||
7d89f4c85f | |||
b12434d6b5 | |||
6aaa616bc9 | |||
e15549229d | |||
a271e9c161 | |||
debd5e6a8c | |||
08b64ad632 | |||
e629c5cd15 | |||
a0b0588fa1 | |||
df4b1a09c4 | |||
c03661894c | |||
e7f77f9d7c | |||
f86119a3bc | |||
02177dcea7 | |||
ccb2658aea | |||
9f7ffcd62d | |||
cb79cc1f69 | |||
61333eccaf | |||
61007c3619 | |||
31557f3a76 | |||
23543cee5c | |||
6b0a72ba46 | |||
03af2ac90c | |||
3174b3f10e | |||
ed0173f0e1 | |||
9d578ae4e8 | |||
271b16eb1c | |||
0417c61e23 | |||
59dc757cf0 | |||
99ca54cd50 | |||
12045d9a4e | |||
5b09d25189 | |||
84895e0de6 | |||
56e815b3d2 | |||
0627efe799 | |||
fa486ecf8a | |||
41ccfda2c4 | |||
1964267ca9 | |||
2425ff570e | |||
a67fbe6ded | |||
245360af06 | |||
9e1df433c9 | |||
102de0c3fd | |||
![]() |
47a221b866 | ||
![]() |
abd40c25f5 | ||
![]() |
7046bdfad7 | ||
![]() |
657b6922f9 | ||
![]() |
9f6b545b84 | ||
![]() |
584b34c682 | ||
![]() |
9b0de5f3d4 | ||
![]() |
09e4ea732a | ||
![]() |
109b5a4fe1 | ||
e1dc5c9775 | |||
![]() |
3de9a03ab5 | ||
![]() |
f4f6dddb11 | ||
a9a095397e | |||
![]() |
603e7f6bc8 | ||
![]() |
e3027841aa | ||
![]() |
dc56107d4d | ||
![]() |
49eedfe0a0 | ||
![]() |
43289ba71e | ||
![]() |
9652127081 | ||
![]() |
631986a2d5 | ||
![]() |
5d257cae6b | ||
![]() |
8b161f948e | ||
![]() |
fe764ded51 | ||
![]() |
fe1498319a | ||
![]() |
f4d187a601 | ||
![]() |
29728b3b40 | ||
![]() |
250566446f | ||
![]() |
2be59bbe02 | ||
![]() |
d72472824a | ||
![]() |
2fa7cce5c7 | ||
![]() |
fe09808b1b | ||
![]() |
d00d7de585 | ||
![]() |
1dd2851e45 | ||
![]() |
7773db3394 | ||
![]() |
47fb4fdc05 | ||
![]() |
fdda5f0774 | ||
![]() |
0d5049f3b6 | ||
![]() |
880ac5b797 | ||
![]() |
5f6cabc42a | ||
![]() |
f15eec19e0 | ||
![]() |
2122254cdb | ||
![]() |
a9ce8c7de8 | ||
![]() |
268ffa1cd7 | ||
![]() |
f97972e5aa | ||
![]() |
6dbc31cc9d | ||
![]() |
01776ee692 | ||
![]() |
c54f8a105b | ||
![]() |
17dd020835 | ||
![]() |
f585d90c0e |
374 changed files with 12826 additions and 2679 deletions
4
.env
Normal file
4
.env
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
LOCAL_VIVO_HOME=./vivo-home
|
||||||
|
RESET_HOME=false
|
||||||
|
RESET_CORE=false
|
||||||
|
VERBOSE=no
|
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# Convert to LF line endings on checkout.
|
||||||
|
*.sh text eol=lf
|
34
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
34
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Create a report to help us improve
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Describe the bug**
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Steps to reproduce the behavior:
|
||||||
|
1. Go to '...'
|
||||||
|
2. Click on '....'
|
||||||
|
3. Scroll down to '....'
|
||||||
|
4. See error
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
**Screenshots**
|
||||||
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
|
**Environment (please complete the following information):**
|
||||||
|
- OS: [e.g. Windows, Linux]
|
||||||
|
- Browser [e.g. chrome, safari]
|
||||||
|
- Tomcat version [e.g. 8, 9]
|
||||||
|
- VIVO version [e.g. 1.11.0, 1.12.0]
|
||||||
|
- Apache Solr or ElasticSearch version
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context about the problem here.
|
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
name: Feature request
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: ''
|
||||||
|
labels: ''
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
**Describe alternatives you've considered**
|
||||||
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context or screenshots about the feature request here.
|
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
|
@ -1,7 +1,7 @@
|
||||||
**Thank you for submitting a pull request! Title this pull request with a brief description of what the pull request fixes/improves/changes. Please describe the pull request in detail using the template below.**
|
**Thank you for submitting a pull request! Title this pull request with a brief description of what the pull request fixes/improves/changes. Please describe the pull request in detail using the template below.**
|
||||||
* * *
|
* * *
|
||||||
|
|
||||||
**[JIRA Issue](https://jira.duraspace.org/projects/VIVO)**: (please link to issue)
|
**[JIRA Issue](https://jira.lyrasis.org/projects/VIVO)**: (please link to issue)
|
||||||
|
|
||||||
* Other Relevant Links (Mailing list discussion, related pull requests, etc.)
|
* Other Relevant Links (Mailing list discussion, related pull requests, etc.)
|
||||||
|
|
||||||
|
|
31
.github/workflows/build.yml
vendored
Normal file
31
.github/workflows/build.yml
vendored
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
name: Build
|
||||||
|
|
||||||
|
on: [ push, pull_request, workflow_dispatch ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
env:
|
||||||
|
MAVEN_OPTS: -Xmx1024M
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Clone Vitro
|
||||||
|
run: git clone https://github.com/vivo-project/Vitro.git ../Vitro
|
||||||
|
|
||||||
|
- name: Maven Cache
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ~/.m2/repository
|
||||||
|
key: ${{ runner.os }}-cache-m2-${{ hashFiles('**/pom.xml') }}
|
||||||
|
restore-keys: ${{ runner.os }}-cache-m2-
|
||||||
|
|
||||||
|
- name: Setup Java
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 11
|
||||||
|
|
||||||
|
- name: Maven Build
|
||||||
|
run: mvn clean package -s installer/example-settings.xml
|
41
.github/workflows/deploy.yml
vendored
Normal file
41
.github/workflows/deploy.yml
vendored
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
name: Deploy
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
env:
|
||||||
|
MAVEN_OPTS: -Xmx1024M
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Clone Vitro
|
||||||
|
run: git clone https://github.com/vivo-project/Vitro.git ../Vitro
|
||||||
|
|
||||||
|
- name: Maven Cache
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ~/.m2/repository
|
||||||
|
key: ${{ runner.os }}-cache-m2-${{ hashFiles('**/pom.xml') }}
|
||||||
|
restore-keys: ${{ runner.os }}-cache-m2-
|
||||||
|
|
||||||
|
- name: Setup Java
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 11
|
||||||
|
server-id: ossrh
|
||||||
|
server-username: MAVEN_USERNAME
|
||||||
|
server-password: MAVEN_PASSWORD
|
||||||
|
|
||||||
|
- name: Maven Deploy
|
||||||
|
run: mvn --batch-mode deploy -Pskip
|
||||||
|
env:
|
||||||
|
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
|
||||||
|
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
|
59
.github/workflows/docker.yml
vendored
Normal file
59
.github/workflows/docker.yml
vendored
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
name: Docker
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
docker:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
env:
|
||||||
|
MAVEN_OPTS: -Xmx1024M
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Clone Vitro
|
||||||
|
run: git clone https://github.com/vivo-project/Vitro.git ../Vitro
|
||||||
|
|
||||||
|
- name: Maven Cache
|
||||||
|
uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ~/.m2/repository
|
||||||
|
key: ${{ runner.os }}-cache-m2-${{ hashFiles('**/pom.xml') }}
|
||||||
|
restore-keys: ${{ runner.os }}-cache-m2-
|
||||||
|
|
||||||
|
- name: Setup Java
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 11
|
||||||
|
|
||||||
|
- name: Maven Build
|
||||||
|
run: mvn clean package -s installer/example-settings.xml
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
|
||||||
|
- name: Login to DockerHub
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Build and push
|
||||||
|
id: docker_build
|
||||||
|
uses: docker/build-push-action@v2
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
file: ./Dockerfile
|
||||||
|
push: true
|
||||||
|
tags: vivoweb/vivo:latest
|
||||||
|
|
||||||
|
- name: Image digest
|
||||||
|
run: echo ${{ steps.docker_build.outputs.digest }}
|
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -20,3 +20,8 @@ utilities/rdbmigration/.work
|
||||||
**/.classpath
|
**/.classpath
|
||||||
**/.project
|
**/.project
|
||||||
**/bin/
|
**/bin/
|
||||||
|
|
||||||
|
vivo-home/
|
||||||
|
|
||||||
|
.fake
|
||||||
|
.ionide
|
22
.travis.yml
22
.travis.yml
|
@ -1,22 +0,0 @@
|
||||||
language: java
|
|
||||||
dist: trusty
|
|
||||||
sudo: false
|
|
||||||
|
|
||||||
jdk:
|
|
||||||
- openjdk8
|
|
||||||
- oraclejdk8
|
|
||||||
|
|
||||||
env:
|
|
||||||
# Give Maven 1GB of memory to work with
|
|
||||||
- MAVEN_OPTS=-Xmx1024M
|
|
||||||
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- .autoconf
|
|
||||||
- $HOME/.m2
|
|
||||||
|
|
||||||
install:
|
|
||||||
- git clone https://github.com/vivo-project/Vitro.git ../Vitro
|
|
||||||
|
|
||||||
script:
|
|
||||||
- "mvn clean package -Dmaven.test.skip=false"
|
|
20
Dockerfile
Normal file
20
Dockerfile
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
FROM tomcat:9-jdk11-openjdk
|
||||||
|
|
||||||
|
ARG SOLR_URL=http://localhost:8983/solr/vivocore
|
||||||
|
ARG VIVO_DIR=/usr/local/vivo/home
|
||||||
|
ARG TDB_FILE_MODE=direct
|
||||||
|
|
||||||
|
ENV SOLR_URL=${SOLR_URL}
|
||||||
|
ENV JAVA_OPTS="${JAVA_OPTS} -Dtdb:fileMode=$TDB_FILE_MODE"
|
||||||
|
|
||||||
|
RUN mkdir /usr/local/vivo
|
||||||
|
RUN mkdir /usr/local/vivo/home
|
||||||
|
|
||||||
|
COPY ./installer/home/target/vivo /vivo-home
|
||||||
|
COPY ./installer/webapp/target/vivo.war /usr/local/tomcat/webapps/ROOT.war
|
||||||
|
|
||||||
|
COPY start.sh /start.sh
|
||||||
|
|
||||||
|
EXPOSE 8080
|
||||||
|
|
||||||
|
CMD ["/bin/bash", "/start.sh"]
|
2
LICENSE
2
LICENSE
|
@ -1,4 +1,4 @@
|
||||||
Copyright (c) 2018, Cornell University
|
Copyright (c) 2021, Cornell University
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
|
56
README.md
56
README.md
|
@ -1,6 +1,6 @@
|
||||||
# VIVO: Connect, Share, Discover
|
# VIVO: Connect, Share, Discover
|
||||||
|
|
||||||
[](https://travis-ci.org/vivo-project/VIVO) [](https://doi.org/10.5281/zenodo.2639713)
|
[](https://github.com/vivo-project/VIVO/actions?query=workflow%3ABuild) [](https://github.com/vivo-project/VIVO/actions?query=workflow%3ADeploy) [](https://doi.org/10.5281/zenodo.2639713)
|
||||||
|
|
||||||
VIVO is an open source semantic web tool for research discovery -- finding people and the research they do.
|
VIVO is an open source semantic web tool for research discovery -- finding people and the research they do.
|
||||||
|
|
||||||
|
@ -14,12 +14,60 @@ desired information across disciplines.
|
||||||
http://vivoweb.org/
|
http://vivoweb.org/
|
||||||
|
|
||||||
### VIVO Project Wiki
|
### VIVO Project Wiki
|
||||||
https://wiki.duraspace.org/display/VIVO/
|
https://wiki.lyrasis.org/display/VIVO/
|
||||||
|
|
||||||
### Installation Instructions
|
### Installation Instructions
|
||||||
|
|
||||||
Installation instructions for the latest release can be found at this location on the wiki:
|
Installation instructions for the latest release can be found at this location on the wiki:
|
||||||
https://wiki.duraspace.org/display/VIVODOC110x/Installing+VIVO
|
https://wiki.lyrasis.org/display/VIVODOC112x/Installing+VIVO
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
|
||||||
|
VIVO docker container is available at [vivoweb/vivo](https://hub.docker.com/repository/docker/vivoweb/vivo) with accompanying [vivoweb/vivo-solr](https://hub.docker.com/repository/docker/vivoweb/vivo-solr). These can be used independently or with docker-compose.
|
||||||
|
|
||||||
|
### Docker Compose
|
||||||
|
|
||||||
|
Docker Compose environment variables:
|
||||||
|
|
||||||
|
.env defaults
|
||||||
|
```
|
||||||
|
LOCAL_VIVO_HOME=./vivo-home
|
||||||
|
RESET_HOME=false
|
||||||
|
RESET_CORE=false
|
||||||
|
```
|
||||||
|
|
||||||
|
- `LOCAL_VIVO_HOME`: VIVO home directory on your host machine which will mount to volume in docker container. Set this environment variable to persist your VIVO data on your host machine.
|
||||||
|
- `RESET_HOME`: Convenience to reset VIVO home when starting container. **Caution**, will delete local configuration, content, and configuration model.
|
||||||
|
- `RESET_CORE`: Convenience to reset VIVO Solr core when starting container. **Caution**, will require complete reindex.
|
||||||
|
|
||||||
|
Before building VIVO, you will also need to clone (and switch to the same branch, if other than main) of [Vitro](https://github.com/vivo-project/Vitro). The Vitro project must be cloned to a sibling directory next to VIVO so that it can be found during the build. You will also need to clone (and switch to the appropriate branch) of [Vitro-languages](https://github.com/vivo-project/Vitro-languages) and [VIVO-languages](https://github.com/vivo-project/VIVO-languages).
|
||||||
|
|
||||||
|
Build and start VIVO.
|
||||||
|
|
||||||
|
1. In Vitro-languages, run:
|
||||||
|
```
|
||||||
|
mvn install
|
||||||
|
```
|
||||||
|
|
||||||
|
2. In VIVO-languages, run:
|
||||||
|
```
|
||||||
|
mvn install
|
||||||
|
```
|
||||||
|
|
||||||
|
3. In VIVO (with Vitro cloned alongside it), run:
|
||||||
|
```
|
||||||
|
mvn clean package -s installer/example-settings.xml
|
||||||
|
docker-compose up
|
||||||
|
```
|
||||||
|
|
||||||
|
### Docker Image
|
||||||
|
|
||||||
|
To build and run local Docker image.
|
||||||
|
|
||||||
|
```
|
||||||
|
docker build -t vivoweb/vivo:development .
|
||||||
|
docker run -p 8080:8080 vivoweb/vivo:development
|
||||||
|
```
|
||||||
|
|
||||||
## Contact us
|
## Contact us
|
||||||
There are several ways to contact the VIVO community.
|
There are several ways to contact the VIVO community.
|
||||||
|
@ -44,7 +92,7 @@ development, implementation, and testing.
|
||||||
|
|
||||||
## Contributing Code
|
## Contributing Code
|
||||||
If you would like to contribute code to the VIVO project, please open a ticket
|
If you would like to contribute code to the VIVO project, please open a ticket
|
||||||
in our [JIRA](https://jira.duraspace.org/projects/VIVO), and prepare a
|
in our [JIRA](https://jira.lyrasis.org/projects/VIVO), and prepare a
|
||||||
pull request that references your ticket. Contributors welcome!
|
pull request that references your ticket. Contributors welcome!
|
||||||
|
|
||||||
## Citing VIVO
|
## Citing VIVO
|
||||||
|
|
|
@ -7,13 +7,13 @@
|
||||||
|
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-api</artifactId>
|
<artifactId>vivo-api</artifactId>
|
||||||
<version>1.11.2-SNAPSHOT</version>
|
<version>1.12.1-SNAPSHOT</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-project</artifactId>
|
<artifactId>vivo-project</artifactId>
|
||||||
<version>1.11.2-SNAPSHOT</version>
|
<version>1.12.1-SNAPSHOT</version>
|
||||||
<relativePath>..</relativePath>
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
<artifactId>junit</artifactId>
|
<artifactId>junit</artifactId>
|
||||||
<version>4.11</version>
|
<version>4.13.1</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class AgrovocService implements ExternalConceptService {
|
||||||
protected final String dbpedia_endpoint = " http://dbpedia.org/sparql";
|
protected final String dbpedia_endpoint = " http://dbpedia.org/sparql";
|
||||||
// URL to get all the information for a concept
|
// URL to get all the information for a concept
|
||||||
|
|
||||||
protected final String conceptSkosMosBase = "http://agrovoc.uniroma2.it/agrovoc/rest/v1/";
|
protected final String conceptSkosMosBase = "https://agrovoc.uniroma2.it/agrovoc/rest/v1/";
|
||||||
protected final String conceptsSkosMosSearch = conceptSkosMosBase + "search?";
|
protected final String conceptsSkosMosSearch = conceptSkosMosBase + "search?";
|
||||||
protected final String conceptSkosMosURL = conceptSkosMosBase + "data?";
|
protected final String conceptSkosMosURL = conceptSkosMosBase + "data?";
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class LCSHService implements ExternalConceptService {
|
||||||
|
|
||||||
protected final Log log = LogFactory.getLog(getClass());
|
protected final Log log = LogFactory.getLog(getClass());
|
||||||
private final String skosSuffix = ".skos.rdf";
|
private final String skosSuffix = ".skos.rdf";
|
||||||
private final String hostUri = "http://id.loc.gov";
|
private final String hostUri = "https://id.loc.gov";
|
||||||
private final String schemeUri = hostUri + "/authorities/subjects";
|
private final String schemeUri = hostUri + "/authorities/subjects";
|
||||||
private final String baseUri = hostUri + "/search/";
|
private final String baseUri = hostUri + "/search/";
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ public class LCSHService implements ExternalConceptService {
|
||||||
bestMatch = "false";
|
bestMatch = "false";
|
||||||
}
|
}
|
||||||
log.debug("-" + uri + "-");
|
log.debug("-" + uri + "-");
|
||||||
//This is the URL for retrieving the concept - the pattern is http://id.loc.gov/authorities/subjects/sh85014203.skos.rdf
|
//This is the URL for retrieving the concept - the pattern is https://id.loc.gov/authorities/subjects/sh85014203.skos.rdf
|
||||||
//This is not the URI itself which would be http://id.loc.gov/authorities/subjects/sh85014203
|
//This is not the URI itself which would be http://id.loc.gov/authorities/subjects/sh85014203
|
||||||
String conceptURLString = getSKOSURL(uri);
|
String conceptURLString = getSKOSURL(uri);
|
||||||
String baseConceptURI = uri;
|
String baseConceptURI = uri;
|
||||||
|
@ -152,7 +152,7 @@ public class LCSHService implements ExternalConceptService {
|
||||||
|
|
||||||
|
|
||||||
private String getSKOSURL(String uri) {
|
private String getSKOSURL(String uri) {
|
||||||
String skosURI = uri + skosSuffix;
|
String skosURI = uri.replaceFirst("http://", "https://") + skosSuffix;
|
||||||
|
|
||||||
return skosURI;
|
return skosURI;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,12 +4,18 @@ package edu.cornell.mannlib.semservices.service.impl;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.net.URL;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.apache.http.HttpVersion;
|
||||||
|
import org.apache.http.client.fluent.Form;
|
||||||
|
import org.apache.http.client.fluent.Request;
|
||||||
|
import org.apache.http.client.utils.URIBuilder;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
|
@ -18,11 +24,6 @@ import edu.cornell.mannlib.semservices.bo.Concept;
|
||||||
import edu.cornell.mannlib.semservices.exceptions.ConceptsNotFoundException;
|
import edu.cornell.mannlib.semservices.exceptions.ConceptsNotFoundException;
|
||||||
import edu.cornell.mannlib.semservices.service.ExternalConceptService;
|
import edu.cornell.mannlib.semservices.service.ExternalConceptService;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.json.JacksonUtils;
|
import edu.cornell.mannlib.vitro.webapp.utils.json.JacksonUtils;
|
||||||
import org.apache.http.HttpVersion;
|
|
||||||
import org.apache.http.client.fluent.Form;
|
|
||||||
import org.apache.http.client.fluent.Request;
|
|
||||||
import org.apache.http.client.utils.URIBuilder;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author jaf30
|
* @author jaf30
|
||||||
|
@ -54,11 +55,13 @@ public class UMLSService implements ExternalConceptService {
|
||||||
private static String UMLS_AUTH_USER_URL = "https://utslogin.nlm.nih.gov/cas/v1/tickets";
|
private static String UMLS_AUTH_USER_URL = "https://utslogin.nlm.nih.gov/cas/v1/tickets";
|
||||||
private static String UMLS_AUTH_KEY_URL = "https://utslogin.nlm.nih.gov/cas/v1/api-key";
|
private static String UMLS_AUTH_KEY_URL = "https://utslogin.nlm.nih.gov/cas/v1/api-key";
|
||||||
private static String UTS_SERVICE_URL = "http://umlsks.nlm.nih.gov";
|
private static String UTS_SERVICE_URL = "http://umlsks.nlm.nih.gov";
|
||||||
|
private static final String UMLS_PROPERTIES = "/umls.properties";
|
||||||
|
private static final Log log = LogFactory.getLog(UMLSService.class);
|
||||||
|
|
||||||
{
|
{
|
||||||
if (username == null || apikey == null) {
|
if (username == null || apikey == null) {
|
||||||
final Properties properties = new Properties();
|
final Properties properties = new Properties();
|
||||||
try (InputStream stream = getClass().getResourceAsStream("/umls.properties")) {
|
try (InputStream stream = getClass().getResourceAsStream(UMLS_PROPERTIES)) {
|
||||||
properties.load(stream);
|
properties.load(stream);
|
||||||
username = properties.getProperty("username");
|
username = properties.getProperty("username");
|
||||||
password = properties.getProperty("password");
|
password = properties.getProperty("password");
|
||||||
|
@ -73,12 +76,19 @@ public class UMLSService implements ExternalConceptService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
log.error(e, e);
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
log.error(e, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean configurationFileExists() {
|
||||||
|
URL config = UMLSService.class.getResource(UMLS_PROPERTIES);
|
||||||
|
return (config != null);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isConfigured() {
|
public boolean isConfigured() {
|
||||||
return !(StringUtils.isEmpty(username) && StringUtils.isEmpty(apikey));
|
return !(StringUtils.isEmpty(username) && StringUtils.isEmpty(apikey));
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ public class ManagePublicationsForIndividualController extends FreemarkerHttpSer
|
||||||
+ "PREFIX core: <http://vivoweb.org/ontology/core#> \n"
|
+ "PREFIX core: <http://vivoweb.org/ontology/core#> \n"
|
||||||
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
|
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
|
||||||
+ "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n"
|
+ "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n"
|
||||||
+ "SELECT DISTINCT ?subclass ?authorship (str(?label) as ?title) ?pub ?hideThis WHERE { \n"
|
+ "SELECT DISTINCT ?subclass ?authorship (?label as ?title) ?pub ?hideThis WHERE { \n"
|
||||||
+ " ?subject core:relatedBy ?authorship . \n"
|
+ " ?subject core:relatedBy ?authorship . \n"
|
||||||
+ " ?authorship a core:Authorship . \n"
|
+ " ?authorship a core:Authorship . \n"
|
||||||
+ " OPTIONAL { \n "
|
+ " OPTIONAL { \n "
|
||||||
|
|
|
@ -11,15 +11,18 @@ import org.apache.jena.rdf.model.Literal;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.N3ValidatorVTwo;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.N3ValidatorVTwo;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.MultiValueEditSubmission;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.MultiValueEditSubmission;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18nBundle;
|
||||||
|
|
||||||
public class FirstAndLastNameValidator implements N3ValidatorVTwo {
|
public class FirstAndLastNameValidator implements N3ValidatorVTwo {
|
||||||
|
|
||||||
private static String MISSING_FIRST_NAME_ERROR = "You must enter a value in the First Name field.";
|
private static String MISSING_FIRST_NAME_ERROR = "first_name_empty_msg";
|
||||||
private static String MISSING_LAST_NAME_ERROR = "You must enter a value in the Last Name field.";
|
private static String MISSING_LAST_NAME_ERROR = "last_name_empty_msg";
|
||||||
private static String MALFORMED_LAST_NAME_ERROR = "The last name field may not contain a comma. Please enter first name in First Name field.";
|
private static String MALFORMED_LAST_NAME_ERROR = "malformed_last_name_msg";
|
||||||
|
private I18nBundle i18n;
|
||||||
private String uriReceiver;
|
private String uriReceiver;
|
||||||
|
|
||||||
public FirstAndLastNameValidator(String uriReceiver) {
|
public FirstAndLastNameValidator(String uriReceiver, I18nBundle i18n) {
|
||||||
|
this.i18n = i18n;
|
||||||
this.uriReceiver = uriReceiver;
|
this.uriReceiver = uriReceiver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,14 +71,14 @@ public class FirstAndLastNameValidator implements N3ValidatorVTwo {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lastName == null) {
|
if (lastName == null) {
|
||||||
errors.put("lastName", MISSING_LAST_NAME_ERROR);
|
errors.put("lastName", i18n.text(MISSING_LAST_NAME_ERROR));
|
||||||
// Don't reject space in the last name: de Vries, etc.
|
// Don't reject space in the last name: de Vries, etc.
|
||||||
} else if (lastNameValue.contains(",")) {
|
} else if (lastNameValue.contains(",")) {
|
||||||
errors.put("lastName", MALFORMED_LAST_NAME_ERROR);
|
errors.put("lastName", i18n.text(MALFORMED_LAST_NAME_ERROR));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (firstName == null) {
|
if (firstName == null) {
|
||||||
errors.put("firstName", MISSING_FIRST_NAME_ERROR);
|
errors.put("firstName", i18n.text(MISSING_FIRST_NAME_ERROR));
|
||||||
}
|
}
|
||||||
|
|
||||||
return errors.size() != 0 ? errors : null;
|
return errors.size() != 0 ? errors : null;
|
||||||
|
|
|
@ -5,6 +5,7 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
|
||||||
public class AddAttendeeRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
public class AddAttendeeRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||||
|
|
||||||
|
@ -21,28 +22,28 @@ public class AddAttendeeRoleToPersonGenerator extends AddRoleToPersonTwoStageGen
|
||||||
/** Editor role involves hard-coded options for the "right side" of the role or activity. */
|
/** Editor role involves hard-coded options for the "right side" of the role or activity. */
|
||||||
@Override
|
@Override
|
||||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||||
return new ConstantFieldOptions(
|
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||||
"", "Select type",
|
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||||
"http://purl.org/NET/c4dm/event.owl#Event", "Event",
|
I18n.bundle(vreq).text("select_type"),
|
||||||
"http://vivoweb.org/ontology/core#Competition", "Competition",
|
"http://purl.org/NET/c4dm/event.owl#Event",
|
||||||
"http://purl.org/ontology/bibo/Conference", "Conference",
|
"http://vivoweb.org/ontology/core#Competition",
|
||||||
"http://vivoweb.org/ontology/core#Course", "Course",
|
"http://purl.org/ontology/bibo/Conference",
|
||||||
"http://vivoweb.org/ontology/core#Exhibit", "Exhibit",
|
"http://vivoweb.org/ontology/core#Course",
|
||||||
"http://purl.org/ontology/bibo/Hearing", "Hearing",
|
"http://vivoweb.org/ontology/core#Exhibit",
|
||||||
"http://purl.org/ontology/bibo/Interview", "Interview",
|
"http://purl.org/ontology/bibo/Hearing",
|
||||||
"http://vivoweb.org/ontology/core#Meeting", "Meeting",
|
"http://purl.org/ontology/bibo/Interview",
|
||||||
"http://purl.org/ontology/bibo/Performance", "Performance",
|
"http://vivoweb.org/ontology/core#Meeting",
|
||||||
"http://vivoweb.org/ontology/core#Presentation", "Presentation",
|
"http://purl.org/ontology/bibo/Performance",
|
||||||
"http://vivoweb.org/ontology/core#InvitedTalk", "Invited Talk",
|
"http://vivoweb.org/ontology/core#Presentation",
|
||||||
"http://purl.org/ontology/bibo/Workshop", "Workshop",
|
"http://vivoweb.org/ontology/core#InvitedTalk",
|
||||||
"http://vivoweb.org/ontology/core#EventSeries", "Event Series",
|
"http://purl.org/ontology/bibo/Workshop",
|
||||||
"http://vivoweb.org/ontology/core#ConferenceSeries", "Conference Series",
|
"http://vivoweb.org/ontology/core#EventSeries",
|
||||||
"http://vivoweb.org/ontology/core#SeminarSeries", "Seminar Series",
|
"http://vivoweb.org/ontology/core#ConferenceSeries",
|
||||||
"http://vivoweb.org/ontology/core#WorkshopSeries", "Workshop Series"
|
"http://vivoweb.org/ontology/core#SeminarSeries",
|
||||||
|
"http://vivoweb.org/ontology/core#WorkshopSeries"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
boolean isShowRoleLabelField() {
|
boolean isShowRoleLabelField() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -65,3 +66,4 @@ public class AddAttendeeRoleToPersonGenerator extends AddRoleToPersonTwoStageGen
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
|
||||||
public class AddClinicalRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
public class AddClinicalRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||||
|
|
||||||
|
@ -24,20 +25,19 @@ public class AddClinicalRoleToPersonGenerator extends AddRoleToPersonTwoStageGen
|
||||||
/** Clinical role involves hard-coded options for the "right side" of the role or activity. */
|
/** Clinical role involves hard-coded options for the "right side" of the role or activity. */
|
||||||
@Override
|
@Override
|
||||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||||
return new ConstantFieldOptions(
|
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||||
"", "Select one",
|
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||||
"http://vivoweb.org/ontology/core#Project", "Project",
|
I18n.bundle(vreq).text("select_type"),
|
||||||
"http://purl.obolibrary.org/obo/ERO_0000005", "Service"
|
"http://vivoweb.org/ontology/core#Project",
|
||||||
|
"http://purl.obolibrary.org/obo/ERO_0000005" /* Service */
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
//isShowRoleLabelField remains true for this so doesn't need to be overwritten
|
|
||||||
@Override
|
@Override
|
||||||
boolean isShowRoleLabelField(){
|
boolean isShowRoleLabelField(){
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Use the methods below to change the date/time precision in the
|
* Use the methods below to change the date/time precision in the
|
||||||
* custom form associated with this generator. When not used, the
|
* custom form associated with this generator. When not used, the
|
||||||
|
|
|
@ -5,6 +5,8 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesOptions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18nBundle;
|
||||||
/**
|
/**
|
||||||
* Generates the edit configuration for adding a Role to a Person.
|
* Generates the edit configuration for adding a Role to a Person.
|
||||||
|
|
||||||
|
@ -46,8 +48,13 @@ public class AddEditorRoleToPersonGenerator extends AddRoleToPersonTwoStageGener
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||||
|
// UQAM-Linguistic-Management Managing linguistic context
|
||||||
|
I18nBundle i18n = I18n.bundle(vreq);
|
||||||
|
String i18nSelectType = i18n.text("select_type");
|
||||||
|
String selectType = (i18nSelectType == null || i18nSelectType.isEmpty()) ? "Select type" : i18nSelectType ;
|
||||||
|
|
||||||
return new ChildVClassesOptions(OPTION_CLASS_URI)
|
return new ChildVClassesOptions(OPTION_CLASS_URI)
|
||||||
.setDefaultOptionLabel("Select type");
|
.setDefaultOptionLabel(selectType);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Do not show the role label field for the AddEditorRoleToPerson form */
|
/** Do not show the role label field for the AddEditorRoleToPerson form */
|
||||||
|
|
|
@ -32,6 +32,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUti
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is a slightly unusual generator that is used by Manage Editors on
|
* This is a slightly unusual generator that is used by Manage Editors on
|
||||||
|
@ -83,7 +84,7 @@ public class AddEditorsToInformationResourceGenerator extends VivoBaseGenerator
|
||||||
//template file
|
//template file
|
||||||
editConfiguration.setTemplate("addEditorsToInformationResource.ftl");
|
editConfiguration.setTemplate("addEditorsToInformationResource.ftl");
|
||||||
//add validators
|
//add validators
|
||||||
editConfiguration.addValidator(new FirstAndLastNameValidator("personUri"));
|
editConfiguration.addValidator(new FirstAndLastNameValidator("personUri", I18n.bundle(vreq)));
|
||||||
|
|
||||||
//Adding additional data, specifically edit mode
|
//Adding additional data, specifically edit mode
|
||||||
addFormSpecificData(editConfiguration, vreq);
|
addFormSpecificData(editConfiguration, vreq);
|
||||||
|
|
|
@ -23,9 +23,10 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelAccess;
|
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelAccess;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
||||||
|
@ -108,8 +109,8 @@ public class AddEditorshipToPersonGenerator extends VivoBaseGenerator implements
|
||||||
conf.addField( new FieldVTwo().
|
conf.addField( new FieldVTwo().
|
||||||
setName("documentType").
|
setName("documentType").
|
||||||
setValidators( list("nonempty") ).
|
setValidators( list("nonempty") ).
|
||||||
setOptions( new ConstantFieldOptions("documentType", getDocumentTypeLiteralOptions() ))
|
// UQAM-Linguistic-Management vreq for linguistic context
|
||||||
);
|
setOptions( getDocumentTypeLiteralOptions(vreq) ) );
|
||||||
|
|
||||||
conf.addField( new FieldVTwo().
|
conf.addField( new FieldVTwo().
|
||||||
setName("documentLabel").
|
setName("documentLabel").
|
||||||
|
@ -203,21 +204,22 @@ public class AddEditorshipToPersonGenerator extends VivoBaseGenerator implements
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<List<String>> getDocumentTypeLiteralOptions() {
|
private FieldOptions getDocumentTypeLiteralOptions(VitroRequest vreq) throws Exception {
|
||||||
List<List<String>> literalOptions = new ArrayList<List<String>>();
|
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Book", "Book"));
|
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Chapter", "Chapter"));
|
I18n.bundle(vreq).text("select_type"),
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/EditedBook", "Edited Book"));
|
"http://purl.org/ontology/bibo/Book",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Film", "Film"));
|
"http://purl.org/ontology/bibo/Chapter",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Magazine", "Magazine"));
|
"http://purl.org/ontology/bibo/EditedBook",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Newsletter", "Newsletter"));
|
"http://purl.org/ontology/bibo/Film",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Newspaper", "Newspaper"));
|
"http://purl.org/ontology/bibo/Magazine",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#NewsRelease", "News Release"));
|
"http://vivoweb.org/ontology/core#Newsletter",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Report", "Report"));
|
"http://purl.org/ontology/bibo/Newspaper",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Video", "Video"));
|
"http://vivoweb.org/ontology/core#NewsRelease",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Webpage", "Webpage"));
|
"http://purl.org/ontology/bibo/Report",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Website", "Website"));
|
"http://vivoweb.org/ontology/core#Video",
|
||||||
return literalOptions;
|
"http://purl.org/ontology/bibo/Webpage",
|
||||||
|
"http://purl.org/ontology/bibo/Website");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,8 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesOptions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18nBundle;
|
||||||
|
|
||||||
public class AddHeadOfRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
public class AddHeadOfRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||||
|
|
||||||
|
@ -25,10 +27,14 @@ public class AddHeadOfRoleToPersonGenerator extends AddRoleToPersonTwoStageGener
|
||||||
/** Head Of role involves hard-coded options for the "right side" of the role or activity */
|
/** Head Of role involves hard-coded options for the "right side" of the role or activity */
|
||||||
@Override
|
@Override
|
||||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||||
|
// UQAM-Linguistic-Management Taking into account the linguistic context
|
||||||
|
I18nBundle i18n = I18n.bundle(vreq);
|
||||||
|
String i18nSelectType = i18n.text("select_type");
|
||||||
|
String selectType = (i18nSelectType == null || i18nSelectType.isEmpty()) ? "Select type" : i18nSelectType ;
|
||||||
|
|
||||||
return new
|
return new
|
||||||
ChildVClassesOptions(OPTION_CLASS_URI)
|
ChildVClassesOptions(OPTION_CLASS_URI)
|
||||||
.setDefaultOptionLabel("Select type");
|
.setDefaultOptionLabel(selectType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -2,9 +2,28 @@
|
||||||
|
|
||||||
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
|
import org.apache.jena.query.Query;
|
||||||
|
import org.apache.jena.query.QueryExecution;
|
||||||
|
import org.apache.jena.query.QueryExecutionFactory;
|
||||||
|
import org.apache.jena.query.QueryFactory;
|
||||||
|
import org.apache.jena.query.QuerySolution;
|
||||||
|
import org.apache.jena.query.ResultSet;
|
||||||
|
import org.apache.jena.rdf.model.AnonId;
|
||||||
|
import org.apache.jena.rdf.model.Model;
|
||||||
|
import org.apache.jena.rdf.model.ModelFactory;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18nBundle;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.selection.SelectedLocale;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.RDFServiceUtils;
|
||||||
|
|
||||||
public class AddMemberRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
public class AddMemberRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||||
|
|
||||||
|
@ -20,43 +39,44 @@ public class AddMemberRoleToPersonGenerator extends AddRoleToPersonTwoStageGener
|
||||||
return "http://vivoweb.org/ontology/core#MemberRole";
|
return "http://vivoweb.org/ontology/core#MemberRole";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||||
return new ConstantFieldOptions(
|
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||||
"","Select type",
|
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||||
"http://vivoweb.org/ontology/core#AcademicDepartment","Academic Department",
|
I18n.bundle(vreq).text("select_type"),
|
||||||
"http://vivoweb.org/ontology/core#Association","Association",
|
"http://vivoweb.org/ontology/core#AcademicDepartment",
|
||||||
"http://vivoweb.org/ontology/core#Center","Center",
|
"http://vivoweb.org/ontology/core#Association",
|
||||||
"http://vivoweb.org/ontology/core#ClinicalOrganization","Clinical Organization",
|
"http://vivoweb.org/ontology/core#Center",
|
||||||
"http://vivoweb.org/ontology/core#College","College",
|
"http://vivoweb.org/ontology/core#ClinicalOrganization",
|
||||||
"http://vivoweb.org/ontology/core#Committee","Committee",
|
"http://vivoweb.org/ontology/core#College",
|
||||||
"http://vivoweb.org/ontology/core#Company","Company",
|
"http://vivoweb.org/ontology/core#Committee",
|
||||||
"http://vivoweb.org/ontology/core#Consortium","Consortium",
|
"http://vivoweb.org/ontology/core#Company",
|
||||||
"http://vivoweb.org/ontology/core#CoreLaboratory","Core Laboratory",
|
"http://vivoweb.org/ontology/core#Consortium",
|
||||||
"http://vivoweb.org/ontology/core#Department","Department",
|
"http://vivoweb.org/ontology/core#CoreLaboratory",
|
||||||
"http://vivoweb.org/ontology/core#Division","Division",
|
"http://vivoweb.org/ontology/core#Department",
|
||||||
"http://vivoweb.org/ontology/core#ExtensionUnit","Extension Unit",
|
"http://vivoweb.org/ontology/core#Division",
|
||||||
"http://vivoweb.org/ontology/core#Foundation","Foundation",
|
"http://vivoweb.org/ontology/core#ExtensionUnit",
|
||||||
"http://vivoweb.org/ontology/core#FundingOrganization","Funding Organization",
|
"http://vivoweb.org/ontology/core#Foundation",
|
||||||
"http://vivoweb.org/ontology/core#GovernmentAgency","Government Agency",
|
"http://vivoweb.org/ontology/core#FundingOrganization",
|
||||||
"http://xmlns.com/foaf/0.1/Group","Group",
|
"http://vivoweb.org/ontology/core#GovernmentAgency",
|
||||||
"http://vivoweb.org/ontology/core#Hospital","Hospital",
|
"http://xmlns.com/foaf/0.1/Group",
|
||||||
"http://vivoweb.org/ontology/core#Institute","Institute",
|
"http://vivoweb.org/ontology/core#Hospital",
|
||||||
"http://vivoweb.org/ontology/core#Laboratory","Laboratory",
|
"http://vivoweb.org/ontology/core#Institute",
|
||||||
"http://vivoweb.org/ontology/core#Library","Library",
|
"http://vivoweb.org/ontology/core#Laboratory",
|
||||||
"http://purl.obolibrary.org/obo/OBI_0000835","Manufacturer",
|
"http://vivoweb.org/ontology/core#Library",
|
||||||
"http://vivoweb.org/ontology/core#Museum","Museum",
|
"http://purl.obolibrary.org/obo/OBI_0000835" /* Manufacturer */,
|
||||||
"http://xmlns.com/foaf/0.1/Organization","Organization",
|
"http://vivoweb.org/ontology/core#Museum",
|
||||||
"http://vivoweb.org/ontology/core#PrivateCompany","Private Company",
|
"http://xmlns.com/foaf/0.1/Organization",
|
||||||
"http://vivoweb.org/ontology/core#Program","Program",
|
"http://vivoweb.org/ontology/core#PrivateCompany",
|
||||||
"http://vivoweb.org/ontology/core#Publisher","Publisher",
|
"http://vivoweb.org/ontology/core#Program",
|
||||||
"http://vivoweb.org/ontology/core#ResearchOrganization","Research Organization",
|
"http://vivoweb.org/ontology/core#Publisher",
|
||||||
"http://vivoweb.org/ontology/core#School","School",
|
"http://vivoweb.org/ontology/core#ResearchOrganization",
|
||||||
"http://vivoweb.org/ontology/core#Team","Team",
|
"http://vivoweb.org/ontology/core#School",
|
||||||
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory","Service Providing Lab",
|
"http://vivoweb.org/ontology/core#Team",
|
||||||
"http://vivoweb.org/ontology/core#StudentOrganization","Student Organization",
|
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory",
|
||||||
"http://purl.obolibrary.org/obo/ERO_0000565","Technology Transfer Office",
|
"http://vivoweb.org/ontology/core#StudentOrganization",
|
||||||
"http://vivoweb.org/ontology/core#University","University");
|
"http://purl.obolibrary.org/obo/ERO_0000565" /* Technology Transfer Office */,
|
||||||
|
"http://vivoweb.org/ontology/core#University");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
|
||||||
public class AddOrganizerRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
public class AddOrganizerRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||||
|
|
||||||
|
@ -22,26 +22,27 @@ public class AddOrganizerRoleToPersonGenerator extends AddRoleToPersonTwoStageGe
|
||||||
}
|
}
|
||||||
|
|
||||||
//Organizer role involves hard-coded options for the "right side" of the role or activity
|
//Organizer role involves hard-coded options for the "right side" of the role or activity
|
||||||
@Override
|
|
||||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||||
return new ConstantFieldOptions(
|
|
||||||
"","Select type",
|
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||||
"http://vivoweb.org/ontology/core#Competition", "Competition",
|
vreq.getRDFService(), vreq.getWebappDaoFactory(),
|
||||||
"http://purl.org/ontology/bibo/Conference", "Conference",
|
"", I18n.bundle(vreq).text("select_type"),
|
||||||
"http://vivoweb.org/ontology/core#Course", "Course",
|
"http://vivoweb.org/ontology/core#Competition",
|
||||||
"http://purl.org/NET/c4dm/event.owl#Event", "Event",
|
"http://purl.org/ontology/bibo/Conference",
|
||||||
"http://vivoweb.org/ontology/core#Exhibit", "Exhibit",
|
"http://vivoweb.org/ontology/core#Course",
|
||||||
"http://purl.org/ontology/bibo/Hearing", "Hearing",
|
"http://purl.org/NET/c4dm/event.owl#Event",
|
||||||
"http://purl.org/ontology/bibo/Interview", "Interview",
|
"http://vivoweb.org/ontology/core#Exhibit",
|
||||||
"http://vivoweb.org/ontology/core#InvitedTalk", "Invited Talk",
|
"http://purl.org/ontology/bibo/Hearing",
|
||||||
"http://vivoweb.org/ontology/core#Meeting", "Meeting",
|
"http://purl.org/ontology/bibo/Interview",
|
||||||
"http://purl.org/ontology/bibo/Performance", "Performance",
|
"http://vivoweb.org/ontology/core#InvitedTalk",
|
||||||
"http://vivoweb.org/ontology/core#Presentation", "Presentation",
|
"http://vivoweb.org/ontology/core#Meeting",
|
||||||
"http://purl.org/ontology/bibo/Workshop", "Workshop",
|
"http://purl.org/ontology/bibo/Performance",
|
||||||
"http://vivoweb.org/ontology/core#ConferenceSeries", "Conference Series",
|
"http://vivoweb.org/ontology/core#Presentation",
|
||||||
"http://vivoweb.org/ontology/core#EventSeries", "Event Series",
|
"http://purl.org/ontology/bibo/Workshop",
|
||||||
"http://vivoweb.org/ontology/core#SeminarSeries", "Seminar Series",
|
"http://vivoweb.org/ontology/core#ConferenceSeries",
|
||||||
"http://vivoweb.org/ontology/core#WorkshopSeries", "Workshop Series");
|
"http://vivoweb.org/ontology/core#EventSeries",
|
||||||
|
"http://vivoweb.org/ontology/core#SeminarSeries",
|
||||||
|
"http://vivoweb.org/ontology/core#WorkshopSeries");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
|
||||||
public class AddOutreachProviderRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
public class AddOutreachProviderRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||||
|
|
||||||
|
@ -24,57 +24,58 @@ public class AddOutreachProviderRoleToPersonGenerator extends AddRoleToPersonTwo
|
||||||
//Outreach Provider role involves hard-coded options for the "right side" of the role or activity
|
//Outreach Provider role involves hard-coded options for the "right side" of the role or activity
|
||||||
@Override
|
@Override
|
||||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||||
return new ConstantFieldOptions(
|
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||||
"","Select type",
|
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||||
"http://vivoweb.org/ontology/core#AcademicDepartment","Academic Department",
|
I18n.bundle(vreq).text("select_type"),
|
||||||
"http://vivoweb.org/ontology/core#Association","Association",
|
"http://vivoweb.org/ontology/core#AcademicDepartment",
|
||||||
"http://vivoweb.org/ontology/core#Center","Center",
|
"http://vivoweb.org/ontology/core#Association",
|
||||||
"http://vivoweb.org/ontology/core#ClinicalOrganization","Clinical Organization",
|
"http://vivoweb.org/ontology/core#Center",
|
||||||
"http://vivoweb.org/ontology/core#College","College",
|
"http://vivoweb.org/ontology/core#ClinicalOrganization",
|
||||||
"http://vivoweb.org/ontology/core#Committee","Committee",
|
"http://vivoweb.org/ontology/core#College",
|
||||||
"http://vivoweb.org/ontology/core#Company","Company",
|
"http://vivoweb.org/ontology/core#Committee",
|
||||||
"http://vivoweb.org/ontology/core#Competition", "Competition",
|
"http://vivoweb.org/ontology/core#Company",
|
||||||
"http://purl.org/ontology/bibo/Conference", "Conference",
|
"http://vivoweb.org/ontology/core#Competition",
|
||||||
"http://vivoweb.org/ontology/core#ConferenceSeries", "Conference Series",
|
"http://purl.org/ontology/bibo/Conference",
|
||||||
"http://vivoweb.org/ontology/core#Consortium","Consortium",
|
"http://vivoweb.org/ontology/core#ConferenceSeries",
|
||||||
"http://vivoweb.org/ontology/core#CoreLaboratory","Core Laboratory",
|
"http://vivoweb.org/ontology/core#Consortium",
|
||||||
"http://vivoweb.org/ontology/core#Course", "Course",
|
"http://vivoweb.org/ontology/core#CoreLaboratory",
|
||||||
"http://vivoweb.org/ontology/core#Department","Department",
|
"http://vivoweb.org/ontology/core#Course",
|
||||||
"http://vivoweb.org/ontology/core#Division","Division",
|
"http://vivoweb.org/ontology/core#Department",
|
||||||
"http://purl.org/NET/c4dm/event.owl#Event","Event",
|
"http://vivoweb.org/ontology/core#Division",
|
||||||
"http://vivoweb.org/ontology/core#EventSeries", "Event Series",
|
"http://purl.org/NET/c4dm/event.owl#Event",
|
||||||
"http://vivoweb.org/ontology/core#Exhibit", "Exhibit",
|
"http://vivoweb.org/ontology/core#EventSeries",
|
||||||
"http://vivoweb.org/ontology/core#ExtensionUnit","Extension Unit",
|
"http://vivoweb.org/ontology/core#Exhibit",
|
||||||
"http://vivoweb.org/ontology/core#Foundation","Foundation",
|
"http://vivoweb.org/ontology/core#ExtensionUnit",
|
||||||
"http://vivoweb.org/ontology/core#FundingOrganization","Funding Organization",
|
"http://vivoweb.org/ontology/core#Foundation",
|
||||||
"http://vivoweb.org/ontology/core#GovernmentAgency","Government Agency",
|
"http://vivoweb.org/ontology/core#FundingOrganization",
|
||||||
"http://xmlns.com/foaf/0.1/Group","Group",
|
"http://vivoweb.org/ontology/core#GovernmentAgency",
|
||||||
"http://purl.org/ontology/bibo/Hearing", "Hearing",
|
"http://xmlns.com/foaf/0.1/Group",
|
||||||
"http://vivoweb.org/ontology/core#Hospital","Hospital",
|
"http://purl.org/ontology/bibo/Hearing",
|
||||||
"http://vivoweb.org/ontology/core#Institute","Institute",
|
"http://vivoweb.org/ontology/core#Hospital",
|
||||||
"http://purl.org/ontology/bibo/Interview", "Interview",
|
"http://vivoweb.org/ontology/core#Institute",
|
||||||
"http://vivoweb.org/ontology/core#InvitedTalk", "Invited Talk",
|
"http://purl.org/ontology/bibo/Interview",
|
||||||
"http://vivoweb.org/ontology/core#Laboratory","Laboratory",
|
"http://vivoweb.org/ontology/core#InvitedTalk",
|
||||||
"http://vivoweb.org/ontology/core#Library","Library",
|
"http://vivoweb.org/ontology/core#Laboratory",
|
||||||
"http://purl.obolibrary.org/obo/OBI_0000835","Manufacturer",
|
"http://vivoweb.org/ontology/core#Library",
|
||||||
"http://vivoweb.org/ontology/core#Meeting", "Meeting",
|
"http://purl.obolibrary.org/obo/OBI_0000835" /* Manufacturer */,
|
||||||
"http://vivoweb.org/ontology/core#Museum","Museum",
|
"http://vivoweb.org/ontology/core#Meeting",
|
||||||
"http://xmlns.com/foaf/0.1/Organization","Organization",
|
"http://vivoweb.org/ontology/core#Museum",
|
||||||
"http://purl.org/ontology/bibo/Performance", "Performance",
|
"http://xmlns.com/foaf/0.1/Organization",
|
||||||
"http://vivoweb.org/ontology/core#Presentation", "Presentation",
|
"http://purl.org/ontology/bibo/Performance",
|
||||||
"http://vivoweb.org/ontology/core#PrivateCompany","Private Company",
|
"http://vivoweb.org/ontology/core#Presentation",
|
||||||
"http://vivoweb.org/ontology/core#Program","Program",
|
"http://vivoweb.org/ontology/core#PrivateCompany",
|
||||||
"http://vivoweb.org/ontology/core#Publisher","Publisher",
|
"http://vivoweb.org/ontology/core#Program",
|
||||||
"http://vivoweb.org/ontology/core#ResearchOrganization","Research Organization",
|
"http://vivoweb.org/ontology/core#Publisher",
|
||||||
"http://vivoweb.org/ontology/core#School","School",
|
"http://vivoweb.org/ontology/core#ResearchOrganization",
|
||||||
"http://vivoweb.org/ontology/core#SeminarSeries", "Seminar Series",
|
"http://vivoweb.org/ontology/core#School",
|
||||||
"http://vivoweb.org/ontology/core#Team","Team",
|
"http://vivoweb.org/ontology/core#SeminarSeries",
|
||||||
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory","Service Providing Lab",
|
"http://vivoweb.org/ontology/core#Team",
|
||||||
"http://vivoweb.org/ontology/core#StudentOrganization","Student Organization",
|
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory",
|
||||||
"http://purl.obolibrary.org/obo/ERO_0000565","Technology Transfer Office",
|
"http://vivoweb.org/ontology/core#StudentOrganization",
|
||||||
"http://vivoweb.org/ontology/core#University","University",
|
"http://purl.obolibrary.org/obo/ERO_0000565" /*Technology Transfer Office*/,
|
||||||
"http://purl.org/ontology/bibo/Workshop", "Workshop",
|
"http://vivoweb.org/ontology/core#University",
|
||||||
"http://vivoweb.org/ontology/core#WorkshopSeries", "Workshop Series");
|
"http://purl.org/ontology/bibo/Workshop",
|
||||||
|
"http://vivoweb.org/ontology/core#WorkshopSeries");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -29,8 +29,10 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeWithPrecisio
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelAccess;
|
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelAccess;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
||||||
|
@ -624,7 +626,8 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
|
||||||
|
|
||||||
private void setFields(EditConfigurationVTwo editConfiguration, VitroRequest vreq) throws Exception {
|
private void setFields(EditConfigurationVTwo editConfiguration, VitroRequest vreq) throws Exception {
|
||||||
setTitleField(editConfiguration);
|
setTitleField(editConfiguration);
|
||||||
setPubTypeField(editConfiguration);
|
//UQAM-Linguistic-Management needs for getting appropriated value in the linguistic context
|
||||||
|
setPubTypeField(editConfiguration, vreq);
|
||||||
setPubUriField(editConfiguration);
|
setPubUriField(editConfiguration);
|
||||||
setCollectionLabelField(editConfiguration);
|
setCollectionLabelField(editConfiguration);
|
||||||
setCollectionDisplayField(editConfiguration);
|
setCollectionDisplayField(editConfiguration);
|
||||||
|
@ -664,11 +667,12 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
|
||||||
setRangeDatatypeUri(stringDatatypeUri));
|
setRangeDatatypeUri(stringDatatypeUri));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setPubTypeField(EditConfigurationVTwo editConfiguration) throws Exception {
|
//UQAM-Linguistic-Management add vreq to get linguistic context
|
||||||
|
private void setPubTypeField(EditConfigurationVTwo editConfiguration, VitroRequest vreq) throws Exception {
|
||||||
editConfiguration.addField(new FieldVTwo().
|
editConfiguration.addField(new FieldVTwo().
|
||||||
setName("pubType").
|
setName("pubType").
|
||||||
setValidators( list("nonempty") ).
|
setValidators( list("nonempty") ).
|
||||||
setOptions( new ConstantFieldOptions("pubType", getPublicationTypeLiteralOptions() ))
|
setOptions( getPublicationTypeLiteralOptions(vreq) )
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -886,39 +890,40 @@ public class AddPublicationToPersonGenerator extends VivoBaseGenerator implement
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<List<String>> getPublicationTypeLiteralOptions() {
|
private FieldOptions getPublicationTypeLiteralOptions(VitroRequest vreq) throws Exception {
|
||||||
List<List<String>> literalOptions = new ArrayList<List<String>>();
|
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Abstract", "Abstract"));
|
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/AcademicArticle", "Academic Article"));
|
I18n.bundle(vreq).text("select_type"),
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Article", "Article"));
|
"http://vivoweb.org/ontology/core#Abstract",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/AudioDocument", "Audio Document"));
|
"http://purl.org/ontology/bibo/AcademicArticle",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#BlogPosting", "Blog Posting"));
|
"http://purl.org/ontology/bibo/Article",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Book", "Book"));
|
"http://purl.org/ontology/bibo/AudioDocument",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#CaseStudy", "Case Study"));
|
"http://vivoweb.org/ontology/core#BlogPosting",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Catalog", "Catalog"));
|
"http://purl.org/ontology/bibo/Book",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Chapter", "Chapter"));
|
"http://vivoweb.org/ontology/core#CaseStudy",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#ConferencePaper", "Conference Paper"));
|
"http://vivoweb.org/ontology/core#Catalog",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#ConferencePoster", "Conference Poster"));
|
"http://purl.org/ontology/bibo/Chapter",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Database", "Database"));
|
"http://vivoweb.org/ontology/core#ConferencePaper",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Dataset", "Dataset"));
|
"http://vivoweb.org/ontology/core#ConferencePoster",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/EditedBook", "Edited Book"));
|
"http://vivoweb.org/ontology/core#Database",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#EditorialArticle", "Editorial Article"));
|
"http://vivoweb.org/ontology/core#Dataset",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Film", "Film"));
|
"http://purl.org/ontology/bibo/EditedBook",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Newsletter", "Newsletter"));
|
"http://vivoweb.org/ontology/core#EditorialArticle",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#NewsRelease", "News Release"));
|
"http://purl.org/ontology/bibo/Film",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Patent", "Patent"));
|
"http://vivoweb.org/ontology/core#Newsletter",
|
||||||
literalOptions.add(list("http://purl.obolibrary.org/obo/OBI_0000272", "Protocol"));
|
"http://vivoweb.org/ontology/core#NewsRelease",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Report", "Report"));
|
"http://purl.org/ontology/bibo/Patent",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#ResearchProposal", "Research Proposal"));
|
"http://purl.obolibrary.org/obo/OBI_0000272",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Review", "Review"));
|
"http://purl.org/ontology/bibo/Report",
|
||||||
literalOptions.add(list("http://purl.obolibrary.org/obo/ERO_0000071 ", "Software"));
|
"http://vivoweb.org/ontology/core#ResearchProposal",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Speech", "Speech"));
|
"http://vivoweb.org/ontology/core#Review",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Thesis", "Thesis"));
|
"http://purl.obolibrary.org/obo/ERO_0000071 ",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#Video", "Video"));
|
"http://vivoweb.org/ontology/core#Speech",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Webpage", "Webpage"));
|
"http://purl.org/ontology/bibo/Thesis",
|
||||||
literalOptions.add(list("http://purl.org/ontology/bibo/Website", "Website"));
|
"http://vivoweb.org/ontology/core#Video",
|
||||||
literalOptions.add(list("http://vivoweb.org/ontology/core#WorkingPaper", "Working Paper"));
|
"http://purl.org/ontology/bibo/Webpage",
|
||||||
return literalOptions;
|
"http://purl.org/ontology/bibo/Website",
|
||||||
|
"http://vivoweb.org/ontology/core#WorkingPaper");
|
||||||
}
|
}
|
||||||
|
|
||||||
//Form specific data
|
//Form specific data
|
||||||
|
|
|
@ -5,6 +5,7 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
|
||||||
public class AddResearcherRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
public class AddResearcherRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||||
|
|
||||||
|
@ -23,12 +24,13 @@ public class AddResearcherRoleToPersonGenerator extends AddRoleToPersonTwoStageG
|
||||||
/** Researcher role involves hard-coded options for the "right side" of the role or activity. */
|
/** Researcher role involves hard-coded options for the "right side" of the role or activity. */
|
||||||
@Override
|
@Override
|
||||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||||
return new ConstantFieldOptions(
|
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||||
"", "Select one",
|
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||||
"http://vivoweb.org/ontology/core#Grant", "Grant",
|
I18n.bundle(vreq).text("select_type"),
|
||||||
"http://purl.obolibrary.org/obo/ERO_0000015", "Human Study",
|
"http://vivoweb.org/ontology/core#Grant",
|
||||||
"http://vivoweb.org/ontology/core#Project", "Project",
|
"http://purl.obolibrary.org/obo/ERO_0000015" /* Human Study" */,
|
||||||
"http://purl.obolibrary.org/obo/ERO_0000014", "Research Project");
|
"http://vivoweb.org/ontology/core#Project",
|
||||||
|
"http://purl.obolibrary.org/obo/ERO_0000014" /* Research Project */);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -5,6 +5,7 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
|
||||||
public class AddReviewerRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
public class AddReviewerRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||||
|
|
||||||
|
@ -34,77 +35,77 @@ public class AddReviewerRoleToPersonGenerator extends AddRoleToPersonTwoStageGen
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||||
return new ConstantFieldOptions(
|
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||||
"", "Select type",
|
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||||
"http://purl.org/ontology/bibo/AcademicArticle", "Academic Article",
|
I18n.bundle(vreq).text("select_type"),
|
||||||
"http://purl.org/ontology/bibo/Article", "Article",
|
"http://purl.org/ontology/bibo/AcademicArticle",
|
||||||
"http://purl.org/ontology/bibo/AudioDocument", "Audio Document",
|
"http://purl.org/ontology/bibo/Article",
|
||||||
"http://purl.org/ontology/bibo/AudioVisualDocument", "Audio-Visual Document",
|
"http://purl.org/ontology/bibo/AudioDocument",
|
||||||
"http://purl.org/ontology/bibo/Bill", "Bill",
|
"http://purl.org/ontology/bibo/AudioVisualDocument",
|
||||||
"http://vivoweb.org/ontology/core#Blog", "Blog",
|
"http://purl.org/ontology/bibo/Bill",
|
||||||
"http://vivoweb.org/ontology/core#BlogPosting", "Blog Posting",
|
"http://vivoweb.org/ontology/core#Blog",
|
||||||
"http://purl.org/ontology/bibo/Book", "Book",
|
"http://vivoweb.org/ontology/core#BlogPosting",
|
||||||
"http://purl.org/ontology/bibo/BookSection", "Book Section",
|
"http://purl.org/ontology/bibo/Book",
|
||||||
"http://purl.org/ontology/bibo/Brief", "Brief",
|
"http://purl.org/ontology/bibo/BookSection",
|
||||||
"http://vivoweb.org/ontology/core#CaseStudy", "Case Study",
|
"http://purl.org/ontology/bibo/Brief",
|
||||||
"http://vivoweb.org/ontology/core#Catalog", "Catalog",
|
"http://vivoweb.org/ontology/core#CaseStudy",
|
||||||
"http://purl.org/ontology/bibo/Chapter", "Chapter",
|
"http://vivoweb.org/ontology/core#Catalog",
|
||||||
"http://purl.org/spar/fabio/ClinicalGuideline", "Clinical Guideline",
|
"http://purl.org/ontology/bibo/Chapter",
|
||||||
"http://purl.org/ontology/bibo/Code", "Code",
|
"http://purl.org/spar/fabio/ClinicalGuideline",
|
||||||
"http://purl.org/ontology/bibo/CollectedDocument", "Collected Document",
|
"http://purl.org/ontology/bibo/Code",
|
||||||
"http://purl.org/spar/fabio/Comment", "Comment",
|
"http://purl.org/ontology/bibo/CollectedDocument",
|
||||||
"http://vivoweb.org/ontology/core#ConferencePaper", "Conference Paper",
|
"http://purl.org/spar/fabio/Comment",
|
||||||
"http://vivoweb.org/ontology/core#ConferencePoster", "Conference Poster",
|
"http://vivoweb.org/ontology/core#ConferencePaper",
|
||||||
"http://purl.org/ontology/bibo/CourtReporter", "Court Reporter",
|
"http://vivoweb.org/ontology/core#ConferencePoster",
|
||||||
"http://vivoweb.org/ontology/core#Database", "Database",
|
"http://purl.org/ontology/bibo/CourtReporter",
|
||||||
"http://purl.org/ontology/bibo/LegalDecision", "Decision",
|
"http://vivoweb.org/ontology/core#Database",
|
||||||
"http://purl.org/ontology/bibo/DocumentPart", "Document Part",
|
"http://purl.org/ontology/bibo/LegalDecision",
|
||||||
"http://purl.org/ontology/bibo/EditedBook", "Edited Book",
|
"http://purl.org/ontology/bibo/DocumentPart",
|
||||||
"http://vivoweb.org/ontology/core#EditorialArticle", "Editorial Article",
|
"http://purl.org/ontology/bibo/EditedBook",
|
||||||
"http://purl.org/spar/fabio/Erratum", "Erratum",
|
"http://vivoweb.org/ontology/core#EditorialArticle",
|
||||||
"http://purl.org/ontology/bibo/Excerpt", "Excerpt",
|
"http://purl.org/spar/fabio/Erratum",
|
||||||
"http://purl.org/ontology/bibo/Film", "Film",
|
"http://purl.org/ontology/bibo/Excerpt",
|
||||||
"http://purl.org/ontology/bibo/Image", "Image",
|
"http://purl.org/ontology/bibo/Film",
|
||||||
"http://purl.org/ontology/bibo/Issue", "Issue",
|
"http://purl.org/ontology/bibo/Image",
|
||||||
"http://purl.org/ontology/bibo/Journal", "Journal",
|
"http://purl.org/ontology/bibo/Issue",
|
||||||
"http://purl.obolibrary.org/obo/IAO_0000013", "Journal Article",
|
"http://purl.org/ontology/bibo/Journal",
|
||||||
"http://purl.org/ontology/bibo/LegalCaseDocument", "Legal Case Document",
|
"http://purl.obolibrary.org/obo/IAO_0000013" /* "Journal Article" */,
|
||||||
"http://purl.org/ontology/bibo/LegalDocument", "Legal Document",
|
"http://purl.org/ontology/bibo/LegalCaseDocument",
|
||||||
"http://purl.org/ontology/bibo/Legislation", "Legislation",
|
"http://purl.org/ontology/bibo/LegalDocument",
|
||||||
"http://purl.org/ontology/bibo/Letter", "Letter",
|
"http://purl.org/ontology/bibo/Legislation",
|
||||||
"http://purl.org/ontology/bibo/Magazine", "Magazine",
|
"http://purl.org/ontology/bibo/Letter",
|
||||||
"http://purl.org/ontology/bibo/Manual", "Manual",
|
"http://purl.org/ontology/bibo/Magazine",
|
||||||
"http://purl.org/ontology/bibo/Manuscript", "Manuscript",
|
"http://purl.org/ontology/bibo/Manual",
|
||||||
"http://purl.org/ontology/bibo/Map", "Map",
|
"http://purl.org/ontology/bibo/Manuscript",
|
||||||
"http://vivoweb.org/ontology/core#Newsletter", "Newsletter",
|
"http://purl.org/ontology/bibo/Map",
|
||||||
"http://purl.org/ontology/bibo/Newspaper", "Newspaper",
|
"http://vivoweb.org/ontology/core#Newsletter",
|
||||||
"http://vivoweb.org/ontology/core#NewsRelease", "News Release",
|
"http://purl.org/ontology/bibo/Newspaper",
|
||||||
"http://purl.org/ontology/bibo/Note", "Note",
|
"http://vivoweb.org/ontology/core#NewsRelease",
|
||||||
"http://purl.org/ontology/bibo/Patent", "Patent",
|
"http://purl.org/ontology/bibo/Note",
|
||||||
"http://purl.org/ontology/bibo/Periodical", "Periodical",
|
"http://purl.org/ontology/bibo/Patent",
|
||||||
"http://purl.org/ontology/bibo/PersonalCommunicationDocument", "Personal Communication Document",
|
"http://purl.org/ontology/bibo/Periodical",
|
||||||
"http://purl.org/ontology/bibo/Proceedings", "Proceedings",
|
"http://purl.org/ontology/bibo/PersonalCommunicationDocument",
|
||||||
"http://purl.obolibrary.org/obo/OBI_0000272", "protocol",
|
"http://purl.org/ontology/bibo/Proceedings",
|
||||||
"http://purl.org/ontology/bibo/Quote", "Quote",
|
"http://purl.obolibrary.org/obo/OBI_0000272" /* Protocol" */,
|
||||||
"http://purl.org/ontology/bibo/ReferenceSource", "Reference Source",
|
"http://purl.org/ontology/bibo/Quote",
|
||||||
"http://purl.org/ontology/bibo/Report", "Report",
|
"http://purl.org/ontology/bibo/ReferenceSource",
|
||||||
"http://vivoweb.org/ontology/core#ResearchProposal", "Research Proposal",
|
"http://purl.org/ontology/bibo/Report",
|
||||||
"http://vivoweb.org/ontology/core#Review", "Review",
|
"http://vivoweb.org/ontology/core#ResearchProposal",
|
||||||
"http://vivoweb.org/ontology/core#Score", "Score",
|
"http://vivoweb.org/ontology/core#Review",
|
||||||
"http://vivoweb.org/ontology/core#Screenplay", "Screenplay",
|
"http://vivoweb.org/ontology/core#Score",
|
||||||
"http://purl.org/ontology/bibo/Series", "Series",
|
"http://vivoweb.org/ontology/core#Screenplay",
|
||||||
"http://purl.org/ontology/bibo/Slide", "Slide",
|
"http://purl.org/ontology/bibo/Series",
|
||||||
"http://purl.org/ontology/bibo/Slideshow", "Slideshow",
|
"http://purl.org/ontology/bibo/Slide",
|
||||||
"http://vivoweb.org/ontology/core#Speech", "Speech",
|
"http://purl.org/ontology/bibo/Slideshow",
|
||||||
"http://purl.org/ontology/bibo/Standard", "Standard",
|
"http://vivoweb.org/ontology/core#Speech",
|
||||||
"http://purl.org/ontology/bibo/Statute", "Statute",
|
"http://purl.org/ontology/bibo/Standard",
|
||||||
"http://purl.org/ontology/bibo/Thesis", "Thesis",
|
"http://purl.org/ontology/bibo/Statute",
|
||||||
"http://vivoweb.org/ontology/core#Translation", "Translation",
|
"http://purl.org/ontology/bibo/Thesis",
|
||||||
"http://vivoweb.org/ontology/core#Video", "Video",
|
"http://vivoweb.org/ontology/core#Translation",
|
||||||
"http://purl.org/ontology/bibo/Webpage", "Webpage",
|
"http://vivoweb.org/ontology/core#Video",
|
||||||
"http://purl.org/ontology/bibo/Website", "Website",
|
"http://purl.org/ontology/bibo/Webpage",
|
||||||
"http://vivoweb.org/ontology/core#WorkingPaper", "Working Paper"
|
"http://purl.org/ontology/bibo/Website",
|
||||||
);
|
"http://vivoweb.org/ontology/core#WorkingPaper");
|
||||||
}
|
}
|
||||||
|
|
||||||
//isShowRoleLabelField remains true for this so doesn't need to be overwritten
|
//isShowRoleLabelField remains true for this so doesn't need to be overwritten
|
||||||
|
|
|
@ -415,7 +415,7 @@ public abstract class AddRoleToPersonTwoStageGenerator extends BaseEditConfigura
|
||||||
|
|
||||||
//make list of type URIs from options, this can be called with null since
|
//make list of type URIs from options, this can be called with null since
|
||||||
//ConstantFieldOptions doesn't use any of the arguments.
|
//ConstantFieldOptions doesn't use any of the arguments.
|
||||||
Map<String,String> options = fieldOptions.getOptions(null, null, null) ;
|
Map<String,String> options = fieldOptions.getOptions(null, null, null, null) ;
|
||||||
|
|
||||||
if (options != null && options.size() > 0) {
|
if (options != null && options.size() > 0) {
|
||||||
List<String> typeUris = new ArrayList<String>();
|
List<String> typeUris = new ArrayList<String>();
|
||||||
|
|
|
@ -0,0 +1,649 @@
|
||||||
|
/* $This file is distributed under the terms of the license in LICENSE$ */
|
||||||
|
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
||||||
|
|
||||||
|
import static edu.cornell.mannlib.vitro.webapp.modelaccess.ModelNames.DISPLAY;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.JspToGeneratorMapping;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
|
import org.apache.jena.ontology.OntModel;
|
||||||
|
import org.apache.jena.query.QuerySolution;
|
||||||
|
import org.apache.jena.query.ResultSet;
|
||||||
|
import org.apache.jena.rdf.model.Literal;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.application.ApplicationUtils;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.QueryUtils;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.vclassgroup.ProhibitedFromSearch;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsViaObjectPropetyOptions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelAccess;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchEngine;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchEngineException;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchQuery;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchResponse;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchResultDocumentList;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.search.VitroSearchTermNames;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generates the edit configuration for a default property form.
|
||||||
|
* This handles the default object property auto complete.
|
||||||
|
*
|
||||||
|
* If a default property form is request and the number of indivdiuals
|
||||||
|
* found in the range is too large, the the auto complete setup and
|
||||||
|
* template will be used instead.
|
||||||
|
*/
|
||||||
|
public class AddRubricToELENPHArticleGenerator implements EditConfigurationGenerator {
|
||||||
|
|
||||||
|
private Log log = LogFactory.getLog(AddRubricToELENPHArticleGenerator.class);
|
||||||
|
private String subjectUri = null;
|
||||||
|
private String predicateUri = null;
|
||||||
|
private String objectUri = null;
|
||||||
|
|
||||||
|
private String objectPropertyTemplate = "defaultPropertyForm.ftl";
|
||||||
|
private String acObjectPropertyTemplate = "autoCompleteObjectPropForm.ftl";
|
||||||
|
|
||||||
|
private ArrayList<String> excerptIDs= new ArrayList<String>();
|
||||||
|
|
||||||
|
protected boolean doAutoComplete = false;
|
||||||
|
protected boolean tooManyRangeIndividuals = false;
|
||||||
|
|
||||||
|
protected long maxNonACRangeIndividualCount = 300;
|
||||||
|
protected String customErrorMessages = null;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EditConfigurationVTwo getEditConfiguration(VitroRequest vreq,
|
||||||
|
HttpSession session) throws Exception {
|
||||||
|
|
||||||
|
if(!EditConfigurationUtils.isObjectProperty(EditConfigurationUtils.getPredicateUri(vreq), vreq)) {
|
||||||
|
throw new Exception("DefaultObjectPropertyFormGenerator does not handle data properties.");
|
||||||
|
}
|
||||||
|
|
||||||
|
//Custom error can also be represented as an exception above, but in this case
|
||||||
|
//we would like the page to enable the user to go back to the profile page
|
||||||
|
|
||||||
|
customErrorMessages = getCustomErrorMessages(vreq);
|
||||||
|
if(customErrorMessages != null) {
|
||||||
|
return this.getCustomErrorEditConfiguration(vreq, session);
|
||||||
|
}
|
||||||
|
|
||||||
|
if( tooManyRangeOptions( vreq, session ) ){
|
||||||
|
tooManyRangeIndividuals = true;
|
||||||
|
doAutoComplete = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check if create new and return specific edit configuration from that generator.
|
||||||
|
if(DefaultAddMissingIndividualFormGenerator.isCreateNewIndividual(vreq, session)) {
|
||||||
|
EditConfigurationGenerator generator = JspToGeneratorMapping.createFor("defaultAddMissingIndividualForm.jsp", DefaultAddMissingIndividualFormGenerator.class);
|
||||||
|
return generator.getEditConfiguration(vreq, session);
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: Add a generator for delete: based on command being delete - propDelete.jsp
|
||||||
|
//Generate a edit configuration for the default object property form and return it.
|
||||||
|
//if(DefaultDeleteGenerator.isDelete( vreq,session)){
|
||||||
|
// return (new DefaultDeleteGenerator()).getEditConfiguration(vreq,session);
|
||||||
|
|
||||||
|
return getDefaultObjectEditConfiguration(vreq, session);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getCustomErrorMessages(VitroRequest vreq) {
|
||||||
|
String errorMessages = null;
|
||||||
|
String rangeUri = vreq.getParameter("rangeUri");
|
||||||
|
VClass rangeVClass = null;
|
||||||
|
if(rangeUri != null && !rangeUri.isEmpty()) {
|
||||||
|
WebappDaoFactory ctxDaoFact = vreq.getLanguageNeutralWebappDaoFactory();
|
||||||
|
rangeVClass = ctxDaoFact.getVClassDao().getVClassByURI(rangeUri);
|
||||||
|
if(rangeVClass == null) {
|
||||||
|
errorMessages = I18n.text(vreq,"the_range_class_does_not_exist");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return errorMessages;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected List<VClass> getRangeTypes(VitroRequest vreq) {
|
||||||
|
// This first part needs a WebappDaoFactory with no filtering/RDFService
|
||||||
|
// funny business because it needs to be able to retrieve anonymous union
|
||||||
|
// classes by their "pseudo-bnode URIs".
|
||||||
|
// Someday we'll need to figure out a different way of doing this.
|
||||||
|
//WebappDaoFactory ctxDaoFact = ModelAccess.on(
|
||||||
|
// vreq.getSession().getServletContext()).getWebappDaoFactory();
|
||||||
|
WebappDaoFactory ctxDaoFact = vreq.getLanguageNeutralWebappDaoFactory();
|
||||||
|
|
||||||
|
List<VClass> types = new ArrayList<VClass>();
|
||||||
|
Individual subject = EditConfigurationUtils.getSubjectIndividual(vreq);
|
||||||
|
String predicateUri = EditConfigurationUtils.getPredicateUri(vreq);
|
||||||
|
String rangeUri = EditConfigurationUtils.getRangeUri(vreq);
|
||||||
|
if (rangeUri != null && !rangeUri.isEmpty()) {
|
||||||
|
VClass rangeVClass = ctxDaoFact.getVClassDao().getVClassByURI(rangeUri);
|
||||||
|
if(rangeVClass != null) {
|
||||||
|
if (!rangeVClass.isUnion()) {
|
||||||
|
types.add(rangeVClass);
|
||||||
|
} else {
|
||||||
|
types.addAll(rangeVClass.getUnionComponents());
|
||||||
|
}
|
||||||
|
return types;
|
||||||
|
} else {
|
||||||
|
log.error("Range VClass does not exist for " + rangeUri);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
WebappDaoFactory wDaoFact = vreq.getWebappDaoFactory();
|
||||||
|
//Get all vclasses applicable to subject
|
||||||
|
if(subject != null) {
|
||||||
|
List<VClass> vClasses = subject.getVClasses();
|
||||||
|
HashMap<String, VClass> typesHash = new HashMap<String, VClass>();
|
||||||
|
for(VClass vclass: vClasses) {
|
||||||
|
List<VClass> rangeVclasses = wDaoFact.getVClassDao().getVClassesForProperty(vclass.getURI(),predicateUri);
|
||||||
|
if(rangeVclasses != null) {
|
||||||
|
for(VClass range: rangeVclasses) {
|
||||||
|
//a hash will keep a unique list of types and so prevent duplicates
|
||||||
|
typesHash.put(range.getURI(), range);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
types.addAll(typesHash.values());
|
||||||
|
} else {
|
||||||
|
log.error("Subject individual was null for");
|
||||||
|
}
|
||||||
|
return types;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean tooManyRangeOptions(VitroRequest vreq, HttpSession session ) throws SearchEngineException {
|
||||||
|
List<VClass> rangeTypes = getRangeTypes(vreq);
|
||||||
|
SearchEngine searchEngine = ApplicationUtils.instance().getSearchEngine();
|
||||||
|
|
||||||
|
List<String> types = new ArrayList<String>();
|
||||||
|
for (VClass vclass : rangeTypes) {
|
||||||
|
if (vclass.getURI() != null) {
|
||||||
|
types.add(vclass.getURI());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//empty list means the range is not set to anything, force Thing
|
||||||
|
if(types.size() == 0 ){
|
||||||
|
types.add(VitroVocabulary.OWL_THING);
|
||||||
|
}
|
||||||
|
|
||||||
|
long count = 0;
|
||||||
|
for( String type:types){
|
||||||
|
//search query for type count.
|
||||||
|
SearchQuery query = searchEngine.createQuery();
|
||||||
|
if( VitroVocabulary.OWL_THING.equals( type )){
|
||||||
|
query.setQuery( "*:*" );
|
||||||
|
}else{
|
||||||
|
query.setQuery( VitroSearchTermNames.RDFTYPE + ":" + type);
|
||||||
|
}
|
||||||
|
query.setRows(0);
|
||||||
|
SearchResponse rsp = searchEngine.query(query);
|
||||||
|
SearchResultDocumentList docs = rsp.getResults();
|
||||||
|
long found = docs.getNumFound();
|
||||||
|
count = count + found;
|
||||||
|
if( count > maxNonACRangeIndividualCount )
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return count > maxNonACRangeIndividualCount ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private EditConfigurationVTwo getDefaultObjectEditConfiguration(VitroRequest vreq, HttpSession session) throws Exception {
|
||||||
|
EditConfigurationVTwo editConfiguration = new EditConfigurationVTwo();
|
||||||
|
|
||||||
|
//process subject, predicate, object parameters
|
||||||
|
this.initProcessParameters(vreq, session, editConfiguration);
|
||||||
|
|
||||||
|
//Assumes this is a simple case of subject predicate var
|
||||||
|
editConfiguration.setN3Required(this.generateN3Required(vreq));
|
||||||
|
|
||||||
|
//n3 optional
|
||||||
|
editConfiguration.setN3Optional(this.generateN3Optional());
|
||||||
|
|
||||||
|
//Todo: what do new resources depend on here?
|
||||||
|
//In original form, these variables start off empty
|
||||||
|
editConfiguration.setNewResources(new HashMap<String, String>());
|
||||||
|
//In scope
|
||||||
|
this.setUrisAndLiteralsInScope(editConfiguration);
|
||||||
|
|
||||||
|
//on Form
|
||||||
|
this.setUrisAndLiteralsOnForm(editConfiguration, vreq);
|
||||||
|
|
||||||
|
editConfiguration.setFilesOnForm(new ArrayList<String>());
|
||||||
|
|
||||||
|
//Sparql queries
|
||||||
|
this.setSparqlQueries(editConfiguration);
|
||||||
|
|
||||||
|
//set fields
|
||||||
|
setFields(editConfiguration, vreq, EditConfigurationUtils.getPredicateUri(vreq), getRangeTypes(vreq));
|
||||||
|
|
||||||
|
// No need to put in session here b/c put in session within edit request dispatch controller instead
|
||||||
|
//placing in session depends on having edit key which is handled in edit request dispatch controller
|
||||||
|
// editConfiguration.putConfigInSession(editConfiguration, session);
|
||||||
|
|
||||||
|
prepareForUpdate(vreq, session, editConfiguration);
|
||||||
|
|
||||||
|
//After the main processing is done, check if select from existing process
|
||||||
|
processProhibitedFromSearch(vreq, session, editConfiguration);
|
||||||
|
|
||||||
|
//Form title and submit label moved to template
|
||||||
|
setTemplate(editConfiguration, vreq);
|
||||||
|
|
||||||
|
editConfiguration.addValidator(new AntiXssValidation());
|
||||||
|
|
||||||
|
//Set edit key
|
||||||
|
setEditKey(editConfiguration, vreq);
|
||||||
|
|
||||||
|
//Adding additional data, specifically edit mode
|
||||||
|
if( doAutoComplete ){
|
||||||
|
addFormSpecificDataForAC(editConfiguration, vreq, session);
|
||||||
|
}else{
|
||||||
|
addFormSpecificData(editConfiguration, vreq);
|
||||||
|
}
|
||||||
|
|
||||||
|
return editConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
//We only need enough for the error message to show up
|
||||||
|
private EditConfigurationVTwo getCustomErrorEditConfiguration(VitroRequest vreq, HttpSession session) {
|
||||||
|
EditConfigurationVTwo editConfiguration = new EditConfigurationVTwo();
|
||||||
|
|
||||||
|
//process subject, predicate, object parameters
|
||||||
|
this.initProcessParameters(vreq, session, editConfiguration);
|
||||||
|
|
||||||
|
this.setUrisAndLiteralsInScope(editConfiguration);
|
||||||
|
|
||||||
|
//Sparql queries
|
||||||
|
this.setSparqlQueries(editConfiguration);
|
||||||
|
|
||||||
|
|
||||||
|
prepareForUpdate(vreq, session, editConfiguration);
|
||||||
|
|
||||||
|
editConfiguration.setTemplate("customErrorMessages.ftl");
|
||||||
|
|
||||||
|
//Set edit key
|
||||||
|
setEditKey(editConfiguration, vreq);
|
||||||
|
|
||||||
|
//if custom error messages is not null, then add to form specific data
|
||||||
|
if(customErrorMessages != null) {
|
||||||
|
//at this point, it shouldn't be null
|
||||||
|
HashMap<String, Object> formSpecificData = new HashMap<String, Object>();
|
||||||
|
formSpecificData.put("customErrorMessages", customErrorMessages);
|
||||||
|
editConfiguration.setFormSpecificData(formSpecificData);
|
||||||
|
}
|
||||||
|
return editConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setEditKey(EditConfigurationVTwo editConfiguration, VitroRequest vreq) {
|
||||||
|
String editKey = EditConfigurationUtils.getEditKey(vreq);
|
||||||
|
editConfiguration.setEditKey(editKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setTemplate(EditConfigurationVTwo editConfiguration,
|
||||||
|
VitroRequest vreq) {
|
||||||
|
if( doAutoComplete )
|
||||||
|
editConfiguration.setTemplate(acObjectPropertyTemplate);
|
||||||
|
else
|
||||||
|
editConfiguration.setTemplate(objectPropertyTemplate);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Initialize setup: process parameters
|
||||||
|
private void initProcessParameters(VitroRequest vreq, HttpSession session, EditConfigurationVTwo editConfiguration) {
|
||||||
|
String formUrl = EditConfigurationUtils.getFormUrlWithoutContext(vreq);
|
||||||
|
|
||||||
|
subjectUri = EditConfigurationUtils.getSubjectUri(vreq);
|
||||||
|
predicateUri = EditConfigurationUtils.getPredicateUri(vreq);
|
||||||
|
|
||||||
|
editConfiguration.setFormUrl(formUrl);
|
||||||
|
|
||||||
|
editConfiguration.setUrlPatternToReturnTo("/individual");
|
||||||
|
|
||||||
|
editConfiguration.setVarNameForSubject("subject");
|
||||||
|
editConfiguration.setSubjectUri(subjectUri);
|
||||||
|
editConfiguration.setEntityToReturnTo(subjectUri);
|
||||||
|
editConfiguration.setVarNameForPredicate("predicate");
|
||||||
|
editConfiguration.setPredicateUri(predicateUri);
|
||||||
|
|
||||||
|
|
||||||
|
//this needs to be set for the editing to be triggered properly, otherwise the 'prepare' method
|
||||||
|
//pretends this is a data property editing statement and throws an error
|
||||||
|
//"object" : [ "objectVar" , "${objectUriJson}" , "URI"],
|
||||||
|
if(EditConfigurationUtils.isObjectProperty(predicateUri, vreq)) {
|
||||||
|
log.debug("This is an predicate property: " + predicateUri);
|
||||||
|
log.debug("This is an subject property: " + subjectUri);
|
||||||
|
|
||||||
|
this.initObjectParameters(vreq);
|
||||||
|
log.debug("This is an object property: " + objectUri);
|
||||||
|
this.processObjectPropForm(vreq, editConfiguration);
|
||||||
|
} else {
|
||||||
|
log.debug("This is a data property: " + predicateUri);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void initObjectParameters(VitroRequest vreq) {
|
||||||
|
//in case of object property
|
||||||
|
objectUri = EditConfigurationUtils.getObjectUri(vreq);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processObjectPropForm(VitroRequest vreq, EditConfigurationVTwo editConfiguration) {
|
||||||
|
editConfiguration.setVarNameForObject("objectVar");
|
||||||
|
editConfiguration.setObject(objectUri);
|
||||||
|
//this needs to be set for the editing to be triggered properly, otherwise the 'prepare' method
|
||||||
|
//pretends this is a data property editing statement and throws an error
|
||||||
|
//TODO: Check if null in case no object uri exists but this is still an object property
|
||||||
|
}
|
||||||
|
|
||||||
|
//Get N3 required
|
||||||
|
//Handles both object and data property
|
||||||
|
private List<String> generateN3Required(VitroRequest vreq) {
|
||||||
|
List<String> n3ForEdit = new ArrayList<String>();
|
||||||
|
getTextExcerpts(vreq);
|
||||||
|
if (excerptIDs.isEmpty()) {
|
||||||
|
String editString = "?subject ?predicate ?objectVar .";
|
||||||
|
n3ForEdit.add(editString);
|
||||||
|
} else {
|
||||||
|
for (String excerptID : excerptIDs) {
|
||||||
|
String editString = "<"+excerptID+">" + " ?predicate ?objectVar .";
|
||||||
|
log.debug(editString);
|
||||||
|
n3ForEdit.add(editString);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return n3ForEdit;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> generateN3Optional() {
|
||||||
|
List<String> n3Inverse = new ArrayList<String>();
|
||||||
|
n3Inverse.add("?objectVar ?inverseProp ?subject .");
|
||||||
|
return n3Inverse;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void getTextExcerpts(VitroRequest vreq) {
|
||||||
|
ResultSet excerptResults = QueryUtils.getLanguageNeutralQueryResults(getExcerptsQueryString(), vreq);
|
||||||
|
while (excerptResults.hasNext()) {
|
||||||
|
QuerySolution solution = excerptResults.nextSolution();
|
||||||
|
String excerptID = solution.get("excerptID").asResource().toString();
|
||||||
|
log.debug(excerptID);
|
||||||
|
excerptIDs.add(excerptID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getExcerptsQueryString() {
|
||||||
|
return "PREFIX ts_: <https://litvinovg.pro/text_structures#> "
|
||||||
|
+"SELECT DISTINCT ?excerptID "
|
||||||
|
+"WHERE { "
|
||||||
|
+"<" + subjectUri + "> ts_:hasTOC ?toc . "
|
||||||
|
+"?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerptID . "
|
||||||
|
+"} ";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Set queries
|
||||||
|
private String retrieveQueryForInverse () {
|
||||||
|
String queryForInverse = "PREFIX owl: <http://www.w3.org/2002/07/owl#>"
|
||||||
|
+ " SELECT ?inverse_property "
|
||||||
|
+ " WHERE { ?inverse_property owl:inverseOf ?predicate } ";
|
||||||
|
return queryForInverse;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setUrisAndLiteralsInScope(EditConfigurationVTwo editConfiguration) {
|
||||||
|
HashMap<String, List<String>> urisInScope = new HashMap<String, List<String>>();
|
||||||
|
//note that at this point the subject, predicate, and object var parameters have already been processed
|
||||||
|
urisInScope.put(editConfiguration.getVarNameForSubject(),
|
||||||
|
Arrays.asList(new String[]{editConfiguration.getSubjectUri()}));
|
||||||
|
urisInScope.put(editConfiguration.getVarNameForPredicate(),
|
||||||
|
Arrays.asList(new String[]{editConfiguration.getPredicateUri()}));
|
||||||
|
//this shoudl happen in edit configuration prepare for object prop update
|
||||||
|
//urisInScope.put(editConfiguration.getVarNameForObject(),
|
||||||
|
// Arrays.asList(new String[]{editConfiguration.getObject()}));
|
||||||
|
//inverse property uris should be included in sparql for additional uris in edit configuration
|
||||||
|
editConfiguration.setUrisInScope(urisInScope);
|
||||||
|
//Uris in scope include subject, predicate, and object var
|
||||||
|
|
||||||
|
editConfiguration.setLiteralsInScope(new HashMap<String, List<Literal>>());
|
||||||
|
}
|
||||||
|
|
||||||
|
//n3 should look as follows
|
||||||
|
//?subject ?predicate ?objectVar
|
||||||
|
|
||||||
|
private void setUrisAndLiteralsOnForm(EditConfigurationVTwo editConfiguration, VitroRequest vreq) {
|
||||||
|
List<String> urisOnForm = new ArrayList<String>();
|
||||||
|
List<String> literalsOnForm = new ArrayList<String>();
|
||||||
|
|
||||||
|
//uris on form should be empty if data property
|
||||||
|
urisOnForm.add("objectVar");
|
||||||
|
|
||||||
|
editConfiguration.setUrisOnform(urisOnForm);
|
||||||
|
editConfiguration.setLiteralsOnForm(literalsOnForm);
|
||||||
|
}
|
||||||
|
|
||||||
|
//This is for various items
|
||||||
|
private void setSparqlQueries(EditConfigurationVTwo editConfiguration) {
|
||||||
|
//Sparql queries defining retrieval of literals etc.
|
||||||
|
editConfiguration.setSparqlForAdditionalLiteralsInScope(new HashMap<String, String>());
|
||||||
|
|
||||||
|
Map<String, String> urisInScope = new HashMap<String, String>();
|
||||||
|
urisInScope.put("inverseProp", this.retrieveQueryForInverse());
|
||||||
|
editConfiguration.setSparqlForAdditionalUrisInScope(urisInScope);
|
||||||
|
|
||||||
|
editConfiguration.setSparqlForExistingLiterals(generateSparqlForExistingLiterals());
|
||||||
|
editConfiguration.setSparqlForExistingUris(generateSparqlForExistingUris());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Get page uri for object
|
||||||
|
private HashMap<String, String> generateSparqlForExistingUris() {
|
||||||
|
HashMap<String, String> map = new HashMap<String, String>();
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
private HashMap<String, String> generateSparqlForExistingLiterals() {
|
||||||
|
HashMap<String, String> map = new HashMap<String, String>();
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setFields(EditConfigurationVTwo editConfiguration, VitroRequest vreq, String predicateUri) throws Exception {
|
||||||
|
setFields(editConfiguration, vreq, predicateUri, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setFields(EditConfigurationVTwo editConfiguration, VitroRequest vreq, String predicateUri, List<VClass> rangeTypes) throws Exception {
|
||||||
|
FieldVTwo field = new FieldVTwo();
|
||||||
|
field.setName("objectVar");
|
||||||
|
|
||||||
|
List<String> validators = new ArrayList<String>();
|
||||||
|
validators.add("nonempty");
|
||||||
|
field.setValidators(validators);
|
||||||
|
|
||||||
|
if( ! doAutoComplete ){
|
||||||
|
field.setOptions( new IndividualsViaObjectPropetyOptions(
|
||||||
|
subjectUri,
|
||||||
|
predicateUri,
|
||||||
|
rangeTypes,
|
||||||
|
objectUri,
|
||||||
|
vreq ));
|
||||||
|
}else{
|
||||||
|
field.setOptions(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, FieldVTwo> fields = new HashMap<String, FieldVTwo>();
|
||||||
|
fields.put(field.getName(), field);
|
||||||
|
|
||||||
|
editConfiguration.setFields(fields);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void prepareForUpdate(VitroRequest vreq, HttpSession session, EditConfigurationVTwo editConfiguration) {
|
||||||
|
//Here, retrieve model from
|
||||||
|
OntModel model = ModelAccess.on(session.getServletContext()).getOntModel();
|
||||||
|
//if object property
|
||||||
|
if(EditConfigurationUtils.isObjectProperty(EditConfigurationUtils.getPredicateUri(vreq), vreq)){
|
||||||
|
Individual objectIndividual = EditConfigurationUtils.getObjectIndividual(vreq);
|
||||||
|
if(objectIndividual != null) {
|
||||||
|
//update existing object
|
||||||
|
editConfiguration.prepareForObjPropUpdate(model);
|
||||||
|
} else {
|
||||||
|
//new object to be created
|
||||||
|
editConfiguration.prepareForNonUpdate( model );
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new Error("DefaultObjectPropertyForm does not handle data properties.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isSelectFromExisting(VitroRequest vreq) {
|
||||||
|
String predicateUri = EditConfigurationUtils.getPredicateUri(vreq);
|
||||||
|
if(EditConfigurationUtils.isDataProperty(predicateUri, vreq)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
ObjectProperty objProp = EditConfigurationUtils.getObjectPropertyForPredicate(vreq, EditConfigurationUtils.getPredicateUri(vreq));
|
||||||
|
return objProp.getSelectFromExisting();
|
||||||
|
}
|
||||||
|
|
||||||
|
//Additional processing, eg. select from existing
|
||||||
|
//This is really process prohibited from search
|
||||||
|
private void processProhibitedFromSearch(VitroRequest vreq, HttpSession session, EditConfigurationVTwo editConfig) {
|
||||||
|
if(isSelectFromExisting(vreq)) {
|
||||||
|
// set ProhibitedFromSearch object so picklist doesn't show
|
||||||
|
// individuals from classes that should be hidden from list views
|
||||||
|
OntModel displayOntModel = ModelAccess.on(session.getServletContext()).getOntModel(DISPLAY);
|
||||||
|
ProhibitedFromSearch pfs = new ProhibitedFromSearch(
|
||||||
|
DisplayVocabulary.SEARCH_INDEX_URI, displayOntModel);
|
||||||
|
if( editConfig != null )
|
||||||
|
editConfig.setProhibitedFromSearch(pfs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Form specific data
|
||||||
|
public void addFormSpecificData(EditConfigurationVTwo editConfiguration, VitroRequest vreq) {
|
||||||
|
HashMap<String, Object> formSpecificData = new HashMap<String, Object>();
|
||||||
|
//range options need to be stored for object property
|
||||||
|
//Store field names
|
||||||
|
List<String> objectSelect = new ArrayList<String>();
|
||||||
|
objectSelect.add(editConfiguration.getVarNameForObject());
|
||||||
|
//TODO: Check if this is the proper way to do this?
|
||||||
|
formSpecificData.put("objectSelect", objectSelect);
|
||||||
|
if(customErrorMessages != null && !customErrorMessages.isEmpty()) {
|
||||||
|
formSpecificData.put("customErrorMessages", customErrorMessages);
|
||||||
|
}
|
||||||
|
editConfiguration.setFormSpecificData(formSpecificData);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addFormSpecificDataForAC(EditConfigurationVTwo editConfiguration, VitroRequest vreq, HttpSession session) throws SearchEngineException {
|
||||||
|
HashMap<String, Object> formSpecificData = new HashMap<String, Object>();
|
||||||
|
//Get the edit mode
|
||||||
|
formSpecificData.put("editMode", getEditMode(vreq).toString().toLowerCase());
|
||||||
|
|
||||||
|
//We also need the type of the object itself
|
||||||
|
List<VClass> types = getRangeTypes(vreq);
|
||||||
|
//if types array contains only owl:Thing, the search will not return any results
|
||||||
|
//In this case, set an empty array
|
||||||
|
if(types.size() == 1 && types.get(0).getURI().equals(VitroVocabulary.OWL_THING) ){
|
||||||
|
types = new ArrayList<VClass>();
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder typesBuff = new StringBuilder();
|
||||||
|
for (VClass type : types) {
|
||||||
|
if (type.getURI() != null) {
|
||||||
|
typesBuff.append(type.getURI()).append(",");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
formSpecificData.put("objectTypes", typesBuff.toString());
|
||||||
|
log.debug("autocomplete object types : " + formSpecificData.get("objectTypes"));
|
||||||
|
|
||||||
|
//Get label for individual if it exists
|
||||||
|
if(EditConfigurationUtils.getObjectIndividual(vreq) != null) {
|
||||||
|
String objectLabel = EditConfigurationUtils.getObjectIndividual(vreq).getName();
|
||||||
|
formSpecificData.put("objectLabel", objectLabel);
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: find out if there are any individuals in the classes of objectTypes
|
||||||
|
formSpecificData.put("rangeIndividualsExist", rangeIndividualsExist(types) );
|
||||||
|
|
||||||
|
formSpecificData.put("sparqlForAcFilter", getSparqlForAcFilter(vreq));
|
||||||
|
if(customErrorMessages != null && !customErrorMessages.isEmpty()) {
|
||||||
|
formSpecificData.put("customErrorMessages", customErrorMessages);
|
||||||
|
}
|
||||||
|
editConfiguration.setTemplate(acObjectPropertyTemplate);
|
||||||
|
editConfiguration.setFormSpecificData(formSpecificData);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Object rangeIndividualsExist(List<VClass> types) throws SearchEngineException {
|
||||||
|
SearchEngine searchEngine = ApplicationUtils.instance().getSearchEngine();
|
||||||
|
|
||||||
|
boolean rangeIndividualsFound = false;
|
||||||
|
for( VClass type:types){
|
||||||
|
//search for type count.
|
||||||
|
SearchQuery query = searchEngine.createQuery();
|
||||||
|
query.setQuery( VitroSearchTermNames.RDFTYPE + ":" + type.getURI());
|
||||||
|
query.setRows(0);
|
||||||
|
|
||||||
|
SearchResponse rsp = searchEngine.query(query);
|
||||||
|
SearchResultDocumentList docs = rsp.getResults();
|
||||||
|
if( docs.getNumFound() > 0 ){
|
||||||
|
rangeIndividualsFound = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return rangeIndividualsFound;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSubjectUri() {
|
||||||
|
return subjectUri;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPredicateUri() {
|
||||||
|
return predicateUri;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getObjectUri() {
|
||||||
|
return objectUri;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** get the auto complete edit mode */
|
||||||
|
public EditMode getEditMode(VitroRequest vreq) {
|
||||||
|
//In this case, the original jsp didn't rely on FrontEndEditingUtils
|
||||||
|
//but instead relied on whether or not the object Uri existed
|
||||||
|
String objectUri = EditConfigurationUtils.getObjectUri(vreq);
|
||||||
|
EditMode editMode = FrontEndEditingUtils.EditMode.ADD;
|
||||||
|
if(objectUri != null && !objectUri.isEmpty()) {
|
||||||
|
editMode = FrontEndEditingUtils.EditMode.EDIT;
|
||||||
|
|
||||||
|
}
|
||||||
|
return editMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSparqlForAcFilter(VitroRequest vreq) {
|
||||||
|
String subject = EditConfigurationUtils.getSubjectUri(vreq);
|
||||||
|
String predicate = EditConfigurationUtils.getPredicateUri(vreq);
|
||||||
|
//Get all objects for existing predicate, filters out results from addition and edit
|
||||||
|
String query = "SELECT ?objectVar WHERE { " +
|
||||||
|
"<" + subject + "> <" + predicate + "> ?objectVar .} ";
|
||||||
|
return query;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -5,6 +5,7 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldOptions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
|
||||||
public class AddServiceProviderRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
public class AddServiceProviderRoleToPersonGenerator extends AddRoleToPersonTwoStageGenerator {
|
||||||
|
|
||||||
|
@ -18,62 +19,62 @@ public class AddServiceProviderRoleToPersonGenerator extends AddRoleToPersonTwoS
|
||||||
return "http://purl.obolibrary.org/obo/ERO_0000012";
|
return "http://purl.obolibrary.org/obo/ERO_0000012";
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Service Provider role involves hard-coded options for the
|
|
||||||
* "right side" of the role or activity. */
|
|
||||||
@Override
|
@Override
|
||||||
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
FieldOptions getRoleActivityFieldOptions(VitroRequest vreq) throws Exception {
|
||||||
return new ConstantFieldOptions(
|
return GeneratorUtil.buildResourceAndLabelFieldOptions(
|
||||||
|
vreq.getRDFService(), vreq.getWebappDaoFactory(), "",
|
||||||
|
I18n.bundle(vreq).text("select_type"),
|
||||||
"","Select type",
|
"","Select type",
|
||||||
"http://vivoweb.org/ontology/core#AcademicDepartment","Academic Department",
|
"http://vivoweb.org/ontology/core#AcademicDepartment",
|
||||||
"http://vivoweb.org/ontology/core#Association","Association",
|
"http://vivoweb.org/ontology/core#Association",
|
||||||
"http://vivoweb.org/ontology/core#Center","Center",
|
"http://vivoweb.org/ontology/core#Center",
|
||||||
"http://vivoweb.org/ontology/core#ClinicalOrganization","Clinical Organization",
|
"http://vivoweb.org/ontology/core#ClinicalOrganization",
|
||||||
"http://vivoweb.org/ontology/core#College","College",
|
"http://vivoweb.org/ontology/core#College",
|
||||||
"http://vivoweb.org/ontology/core#Committee","Committee",
|
"http://vivoweb.org/ontology/core#Committee",
|
||||||
"http://vivoweb.org/ontology/core#Company","Company",
|
"http://vivoweb.org/ontology/core#Company",
|
||||||
"http://vivoweb.org/ontology/core#Competition", "Competition",
|
"http://vivoweb.org/ontology/core#Competition",
|
||||||
"http://purl.org/ontology/bibo/Conference", "Conference",
|
"http://purl.org/ontology/bibo/Conference",
|
||||||
"http://vivoweb.org/ontology/core#ConferenceSeries", "Conference Series",
|
"http://vivoweb.org/ontology/core#ConferenceSeries",
|
||||||
"http://vivoweb.org/ontology/core#Consortium","Consortium",
|
"http://vivoweb.org/ontology/core#Consortium",
|
||||||
"http://vivoweb.org/ontology/core#CoreLaboratory","Core Laboratory",
|
"http://vivoweb.org/ontology/core#CoreLaboratory",
|
||||||
"http://vivoweb.org/ontology/core#Course", "Course",
|
"http://vivoweb.org/ontology/core#Course",
|
||||||
"http://vivoweb.org/ontology/core#Department","Department",
|
"http://vivoweb.org/ontology/core#Department",
|
||||||
"http://vivoweb.org/ontology/core#Division","Division",
|
"http://vivoweb.org/ontology/core#Division",
|
||||||
"http://purl.org/NET/c4dm/event.owl#Event","Event",
|
"http://purl.org/NET/c4dm/event.owl#Event",
|
||||||
"http://vivoweb.org/ontology/core#EventSeries", "Event Series",
|
"http://vivoweb.org/ontology/core#EventSeries",
|
||||||
"http://vivoweb.org/ontology/core#Exhibit", "Exhibit",
|
"http://vivoweb.org/ontology/core#Exhibit",
|
||||||
"http://vivoweb.org/ontology/core#ExtensionUnit","Extension Unit",
|
"http://vivoweb.org/ontology/core#ExtensionUnit",
|
||||||
"http://vivoweb.org/ontology/core#Foundation","Foundation",
|
"http://vivoweb.org/ontology/core#Foundation",
|
||||||
"http://vivoweb.org/ontology/core#FundingOrganization","Funding Organization",
|
"http://vivoweb.org/ontology/core#FundingOrganization",
|
||||||
"http://vivoweb.org/ontology/core#GovernmentAgency","Government Agency",
|
"http://vivoweb.org/ontology/core#GovernmentAgency",
|
||||||
"http://xmlns.com/foaf/0.1/Group","Group",
|
"http://xmlns.com/foaf/0.1/Group",
|
||||||
"http://purl.org/ontology/bibo/Hearing", "Hearing",
|
"http://purl.org/ontology/bibo/Hearing",
|
||||||
"http://vivoweb.org/ontology/core#Hospital","Hospital",
|
"http://vivoweb.org/ontology/core#Hospital",
|
||||||
"http://vivoweb.org/ontology/core#Institute","Institute",
|
"http://vivoweb.org/ontology/core#Institute",
|
||||||
"http://purl.org/ontology/bibo/Interview", "Interview",
|
"http://purl.org/ontology/bibo/Interview",
|
||||||
"http://vivoweb.org/ontology/core#InvitedTalk", "Invited Talk",
|
"http://vivoweb.org/ontology/core#InvitedTalk",
|
||||||
"http://vivoweb.org/ontology/core#Laboratory","Laboratory",
|
"http://vivoweb.org/ontology/core#Laboratory",
|
||||||
"http://vivoweb.org/ontology/core#Library","Library",
|
"http://vivoweb.org/ontology/core#Library",
|
||||||
"http://purl.obolibrary.org/obo/OBI_0000835","Manufacturer",
|
"http://purl.obolibrary.org/obo/OBI_0000835" /* Manufacturer */,
|
||||||
"http://vivoweb.org/ontology/core#Meeting", "Meeting",
|
"http://vivoweb.org/ontology/core#Meeting",
|
||||||
"http://vivoweb.org/ontology/core#Museum","Museum",
|
"http://vivoweb.org/ontology/core#Museum",
|
||||||
"http://xmlns.com/foaf/0.1/Organization","Organization",
|
"http://xmlns.com/foaf/0.1/Organization",
|
||||||
"http://purl.org/ontology/bibo/Performance", "Performance",
|
"http://purl.org/ontology/bibo/Performance",
|
||||||
"http://vivoweb.org/ontology/core#Presentation", "Presentation",
|
"http://vivoweb.org/ontology/core#Presentation",
|
||||||
"http://vivoweb.org/ontology/core#PrivateCompany","Private Company",
|
"http://vivoweb.org/ontology/core#PrivateCompany",
|
||||||
"http://vivoweb.org/ontology/core#Program","Program",
|
"http://vivoweb.org/ontology/core#Program",
|
||||||
"http://vivoweb.org/ontology/core#Publisher","Publisher",
|
"http://vivoweb.org/ontology/core#Publisher",
|
||||||
"http://vivoweb.org/ontology/core#ResearchOrganization","Research Organization",
|
"http://vivoweb.org/ontology/core#ResearchOrganization",
|
||||||
"http://vivoweb.org/ontology/core#School","School",
|
"http://vivoweb.org/ontology/core#School",
|
||||||
"http://vivoweb.org/ontology/core#SeminarSeries", "Seminar Series",
|
"http://vivoweb.org/ontology/core#SeminarSeries",
|
||||||
"http://vivoweb.org/ontology/core#Team","Team",
|
"http://vivoweb.org/ontology/core#Team",
|
||||||
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory","Service Providing Lab",
|
"http://vivoweb.org/ontology/core#ServiceProvidingLaboratory",
|
||||||
"http://vivoweb.org/ontology/core#StudentOrganization","Student Organization",
|
"http://vivoweb.org/ontology/core#StudentOrganization",
|
||||||
"http://purl.obolibrary.org/obo/ERO_0000565","Technology Transfer Office",
|
"http://purl.obolibrary.org/obo/ERO_0000565" /* Technology Transfer Office" */,
|
||||||
"http://vivoweb.org/ontology/core#University","University",
|
"http://vivoweb.org/ontology/core#University",
|
||||||
"http://purl.org/ontology/bibo/Workshop", "Workshop",
|
"http://purl.org/ontology/bibo/Workshop",
|
||||||
"http://vivoweb.org/ontology/core#WorkshopSeries", "Workshop Series");
|
"http://vivoweb.org/ontology/core#WorkshopSeries");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
boolean isShowRoleLabelField(){return true;}
|
boolean isShowRoleLabelField(){return true;}
|
||||||
|
|
|
@ -0,0 +1,306 @@
|
||||||
|
/* $This file is distributed under the terms of the license in LICENSE$ */
|
||||||
|
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.TimeZone;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import org.apache.jena.rdf.model.Literal;
|
||||||
|
import org.apache.jena.vocabulary.RDFS;
|
||||||
|
import org.apache.jena.vocabulary.XSD;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.auth.identifier.IdentifierBundle;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.auth.identifier.RequestIdentifiers;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.auth.identifier.common.HasAssociatedIndividual;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.admin.ShowAuthController.AssociatedIndividual;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generates the edit configuration for a default property form.
|
||||||
|
* ModelChangePreprocessor creates the rdfs:label statement.
|
||||||
|
*/
|
||||||
|
public class CompilationGenerator extends BaseEditConfigurationGenerator implements EditConfigurationGenerator {
|
||||||
|
|
||||||
|
private String associatedProfile;
|
||||||
|
private int excerptsCounter;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EditConfigurationVTwo getEditConfiguration(VitroRequest vreq, HttpSession session) {
|
||||||
|
|
||||||
|
EditConfigurationVTwo config = new EditConfigurationVTwo();
|
||||||
|
|
||||||
|
associatedProfile = getAssociatedProfile(vreq);
|
||||||
|
excerptsCounter = parseCounter(vreq);
|
||||||
|
|
||||||
|
config.setTemplate( "compilationForm.ftl" );
|
||||||
|
|
||||||
|
config.setN3Required( generateN3Required(vreq));
|
||||||
|
|
||||||
|
//Optional because user may have selected either person or individual of another kind
|
||||||
|
//Person uses first name and last name whereas individual of other class would use label
|
||||||
|
//middle name is also optional
|
||||||
|
//config.setN3Optional(generateN3Optional());
|
||||||
|
|
||||||
|
config.addNewResource("newCompilation", vreq.getWebappDaoFactory().getDefaultNamespace());
|
||||||
|
config.addNewResource("newCompilationTOC", vreq.getWebappDaoFactory().getDefaultNamespace());
|
||||||
|
config.addField(new FieldVTwo().
|
||||||
|
setName("rawQueryString").
|
||||||
|
setRangeDatatypeUri(XSD.xstring.getURI()).
|
||||||
|
setValidators(getCompilationNameValidators(vreq)));
|
||||||
|
config.addField(new FieldVTwo().
|
||||||
|
setName("queryBuilderRules").
|
||||||
|
setRangeDatatypeUri(XSD.xstring.getURI()).
|
||||||
|
setValidators(getCompilationNameValidators(vreq)));
|
||||||
|
|
||||||
|
for (int itemN = 1; itemN <= excerptsCounter; itemN++) {
|
||||||
|
String tocItem = "tocItem" + itemN;
|
||||||
|
config.addNewResource(tocItem, vreq.getWebappDaoFactory().getDefaultNamespace());
|
||||||
|
String tocLevel = "tocLevel" + itemN;
|
||||||
|
config.addNewResource(tocLevel, vreq.getWebappDaoFactory().getDefaultNamespace());
|
||||||
|
|
||||||
|
String tocItemName = tocItem + "Name";
|
||||||
|
config.addField(new FieldVTwo().
|
||||||
|
setName(tocItemName).
|
||||||
|
setRangeDatatypeUri(XSD.xstring.getURI()).
|
||||||
|
setValidators(getCompilationNameValidators(vreq)));
|
||||||
|
|
||||||
|
String tocLevelName = tocLevel + "Name";
|
||||||
|
config.addField(new FieldVTwo().
|
||||||
|
setName(tocLevelName).
|
||||||
|
setRangeDatatypeUri(XSD.xstring.getURI()).
|
||||||
|
setValidators(getCompilationNameValidators(vreq)));
|
||||||
|
|
||||||
|
String excerpt = "excerpt" + itemN;
|
||||||
|
config.addField(new FieldVTwo().
|
||||||
|
setName(excerpt).
|
||||||
|
setRangeDatatypeUri(XSD.xstring.getURI()).
|
||||||
|
setValidators(getCompilationNameValidators(vreq)));
|
||||||
|
|
||||||
|
}
|
||||||
|
config.setUrisOnform(getUrisOnForm());
|
||||||
|
config.setLiteralsOnForm( getLiteralsOnForm());
|
||||||
|
setUrisAndLiteralsInScope(config);
|
||||||
|
//No SPARQL queries for existing since this is only used to create new, never for edit
|
||||||
|
|
||||||
|
config.addField(new FieldVTwo().
|
||||||
|
setName("newCompilationLabel").
|
||||||
|
setRangeDatatypeUri(XSD.xstring.getURI()).
|
||||||
|
setValidators(getCompilationNameValidators(vreq)));
|
||||||
|
|
||||||
|
|
||||||
|
addFormSpecificData(config, vreq);
|
||||||
|
|
||||||
|
config.addValidator(new AntiXssValidation());
|
||||||
|
|
||||||
|
//This combines the first and last name into the rdfs:label
|
||||||
|
// currently being done via javascript in the template. May use this again
|
||||||
|
// when/if updated to ISF ontology. tlw72
|
||||||
|
// config.addModelChangePreprocessor(new FoafNameToRdfsLabelPreprocessor());
|
||||||
|
|
||||||
|
String formUrl = EditConfigurationUtils.getFormUrlWithoutContext(vreq);
|
||||||
|
config.setFormUrl(formUrl);
|
||||||
|
|
||||||
|
//Note, the spaces are important - they were added by ProcessRdfFormController earlier
|
||||||
|
//as a means of ensuring the substitution worked correctly - as the regex expects spaces
|
||||||
|
config.setEntityToReturnTo(" ?newCompilation ");
|
||||||
|
prepare(vreq, config);
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> getUrisOnForm() {
|
||||||
|
List<String> uris = list();
|
||||||
|
for (int itemN = 1; itemN <= excerptsCounter; itemN++) {
|
||||||
|
String excerpt = "excerpt" + itemN;
|
||||||
|
uris.add(excerpt);
|
||||||
|
}
|
||||||
|
return uris;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> getLiteralsOnForm() {
|
||||||
|
List<String> literals = list( "newCompilationLabel");
|
||||||
|
for (int itemN = 1; itemN <= excerptsCounter; itemN++) {
|
||||||
|
String tocItemName = "tocItem" + itemN + "Name";
|
||||||
|
String tocLevelName = "tocLevel" + itemN + "Name";
|
||||||
|
literals.add(tocItemName);
|
||||||
|
literals.add(tocLevelName);
|
||||||
|
literals.add("rawQueryString");
|
||||||
|
literals.add("queryBuilderRules");
|
||||||
|
}
|
||||||
|
return literals;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getAssociatedProfile(VitroRequest vreq) {
|
||||||
|
String associatedProfile;
|
||||||
|
IdentifierBundle ids = RequestIdentifiers.getIdBundleForRequest(vreq);
|
||||||
|
Collection<String> individualURIs = HasAssociatedIndividual.getIndividualUris(ids);
|
||||||
|
Iterator<String> uriIterator = individualURIs.iterator();
|
||||||
|
if (uriIterator.hasNext()) {
|
||||||
|
associatedProfile = uriIterator.next();
|
||||||
|
} else {
|
||||||
|
associatedProfile = "";
|
||||||
|
}
|
||||||
|
return associatedProfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> generateN3Required(VitroRequest vreq) {
|
||||||
|
StringBuilder n3Req = new StringBuilder();
|
||||||
|
n3Req.append("@prefix ts: <https://litvinovg.pro/text_structures#> .\n");
|
||||||
|
n3Req.append("?newCompilation <" + VitroVocabulary.RDF_TYPE + "> <" + getTypeOfNew(vreq) + "> .\n");
|
||||||
|
n3Req.append("?newCompilation <https://litvinovg.pro/text_structures#modificationTime> " + getModificationTime() + " .\n");
|
||||||
|
n3Req.append("?newCompilation ts:rawQueryString ?rawQueryString .\n");
|
||||||
|
n3Req.append("?newCompilation ts:queryBuilderRules ?queryBuilderRules .\n");
|
||||||
|
n3Req.append("?newCompilation <" + RDFS.label.getURI() + "> ?newCompilationLabel .\n");
|
||||||
|
n3Req.append("?newCompilation ts:hasTOC ?newCompilationTOC .\n");
|
||||||
|
n3Req.append("?newCompilationTOC <" + VitroVocabulary.RDF_TYPE + "> ts:TOC .\n");
|
||||||
|
n3Req.append("?newCompilationTOC <" + RDFS.label.getURI() + "> ?newCompilationLabel .\n");
|
||||||
|
|
||||||
|
if (!associatedProfile.isEmpty()) {
|
||||||
|
n3Req.append("<" + associatedProfile + "> ts:compilatorOf ?newCompilation .\n");
|
||||||
|
|
||||||
|
}
|
||||||
|
//n3Req.append();
|
||||||
|
|
||||||
|
for (int itemN = 1; itemN <= excerptsCounter; itemN++) {
|
||||||
|
String tocItemVar = "?tocItem" + itemN ;
|
||||||
|
String tocItemNameVar = tocItemVar + "Name" ;
|
||||||
|
String tocLevelVar = "?tocLevel" + itemN ;
|
||||||
|
String tocLevelVarName = tocLevelVar + "Name" ;
|
||||||
|
String excerptVar = "?excerpt" + itemN ;
|
||||||
|
n3Req.append("?newCompilationTOC ts:hasTOCItem " + tocItemVar + " .\n");
|
||||||
|
n3Req.append(tocItemVar + " <" + VitroVocabulary.RDF_TYPE + "> ts:TOCItem .\n");
|
||||||
|
n3Req.append(tocItemVar + " <" + RDFS.label.getURI() + "> " + tocItemNameVar + " .\n");
|
||||||
|
n3Req.append(tocItemVar + " ts:itemNumber " + itemN + " .\n");
|
||||||
|
n3Req.append(tocItemVar + " ts:pointsTo " + tocLevelVar + " .\n");
|
||||||
|
n3Req.append(tocLevelVar + " <" + VitroVocabulary.RDF_TYPE + "> ts:TOCLevel .\n");
|
||||||
|
n3Req.append(tocLevelVar + " <" + RDFS.label.getURI() + "> " + tocLevelVarName + " .\n");
|
||||||
|
n3Req.append(tocLevelVar + " ts:hasText " + excerptVar + ".\n");
|
||||||
|
}
|
||||||
|
return list(n3Req.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> generateN3Optional() {
|
||||||
|
List<String> n3OptList = list();
|
||||||
|
StringBuilder n3Opt = new StringBuilder();
|
||||||
|
n3Opt.append("@prefix ts: <https://litvinovg.pro/text_structures#> .\n");
|
||||||
|
n3Opt.append("?newCompilation ts:rawQueryString ?rawQueryString .\n");
|
||||||
|
n3Opt.append("?newCompilation ts:queryBuilderRules ?queryBuilderRules .\n");
|
||||||
|
n3OptList.add(n3Opt.toString());
|
||||||
|
return n3OptList;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getModificationTime() {
|
||||||
|
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
|
||||||
|
sd.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||||
|
Date currentTime = Calendar.getInstance().getTime();
|
||||||
|
String todayAsString = "\"" + sd.format(currentTime) + "\"^^<http://www.w3.org/2001/XMLSchema#dateTime>";
|
||||||
|
return todayAsString;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Integer parseCounter(VitroRequest vreq) {
|
||||||
|
String text = vreq.getParameter("excerptsCount");
|
||||||
|
if (text == null ) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return Integer.parseInt(text);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private List<String> getCompilationNameValidators(VitroRequest vreq) {
|
||||||
|
List<String> validators = new ArrayList<String>();
|
||||||
|
if (isCompilationType(vreq)) {
|
||||||
|
validators.add("nonempty");
|
||||||
|
}
|
||||||
|
return validators;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Get parameter from HTTP request for type of new individual
|
||||||
|
private String getTypeOfNew(VitroRequest vreq) {
|
||||||
|
String typeUri = vreq.getParameter("typeOfNew");
|
||||||
|
if( typeUri == null || typeUri.trim().isEmpty() )
|
||||||
|
return getCompilationClassURI();
|
||||||
|
else
|
||||||
|
return typeUri;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Form specific data
|
||||||
|
public void addFormSpecificData(EditConfigurationVTwo editConfiguration, VitroRequest vreq) {
|
||||||
|
HashMap<String, Object> formSpecificData = new HashMap<String, Object>();
|
||||||
|
formSpecificData.put("typeName", getTypeName(vreq));
|
||||||
|
//Put in whether or not person type
|
||||||
|
if(isCompilationType(vreq)) {
|
||||||
|
//Doing this b/c unsure how freemarker will handle boolean value from JAVA
|
||||||
|
formSpecificData.put("isCompilationType", "true");
|
||||||
|
} else {
|
||||||
|
formSpecificData.put("isCompilationType", "false");
|
||||||
|
|
||||||
|
}
|
||||||
|
formSpecificData.put("excerptsCounter", excerptsCounter);
|
||||||
|
|
||||||
|
editConfiguration.setFormSpecificData(formSpecificData);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getTypeName(VitroRequest vreq) {
|
||||||
|
String typeOfNew = getTypeOfNew(vreq);
|
||||||
|
VClass type = vreq.getWebappDaoFactory().getVClassDao().getVClassByURI(typeOfNew);
|
||||||
|
return type.getName();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCompilationClassURI() {
|
||||||
|
return "https://litvinovg.pro/text_structures#compilation";
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCompilationType(VitroRequest vreq) {
|
||||||
|
WebappDaoFactory wdf = vreq.getWebappDaoFactory();
|
||||||
|
Boolean isCompilationType = Boolean.FALSE;
|
||||||
|
String foafPersonType = getCompilationClassURI();
|
||||||
|
String typeOfNew = getTypeOfNew(vreq);
|
||||||
|
List<String> superTypes = wdf.getVClassDao().getAllSuperClassURIs(typeOfNew);
|
||||||
|
//add the actual type as well so we can add that for the list to be checked
|
||||||
|
superTypes.add(typeOfNew);
|
||||||
|
if( superTypes != null ){
|
||||||
|
for( String typeUri : superTypes){
|
||||||
|
if( foafPersonType.equals(typeUri)) {
|
||||||
|
isCompilationType = Boolean.TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return isCompilationType;
|
||||||
|
}
|
||||||
|
private void setUrisAndLiteralsInScope(EditConfigurationVTwo editConfiguration) {
|
||||||
|
HashMap<String, List<String>> urisInScope = new HashMap<String, List<String>>();
|
||||||
|
//note that at this point the subject, predicate, and object var parameters have already been processed
|
||||||
|
urisInScope.put(editConfiguration.getVarNameForSubject(),
|
||||||
|
Arrays.asList(new String[]{editConfiguration.getSubjectUri()}));
|
||||||
|
urisInScope.put(editConfiguration.getVarNameForPredicate(),
|
||||||
|
Arrays.asList(new String[]{editConfiguration.getPredicateUri()}));
|
||||||
|
editConfiguration.setUrisInScope(urisInScope);
|
||||||
|
//Uris in scope include subject, predicate, and object var
|
||||||
|
|
||||||
|
editConfiguration.setLiteralsInScope(new HashMap<String, List<Literal>>());
|
||||||
|
}
|
||||||
|
|
||||||
|
private String N3_PREFIX = "@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n";
|
||||||
|
}
|
|
@ -0,0 +1,127 @@
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.apache.jena.iri.IRI;
|
||||||
|
import org.apache.jena.iri.IRIFactory;
|
||||||
|
import org.apache.jena.query.QuerySolution;
|
||||||
|
import org.apache.jena.vocabulary.RDFS;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ConstantFieldOptions;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
|
||||||
|
|
||||||
|
public class GeneratorUtil {
|
||||||
|
|
||||||
|
private static final Log log = LogFactory.getLog(GeneratorUtil.class);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build a field options list of resource URIs paired with their labels as
|
||||||
|
* retrieved from the supplied RDFService.
|
||||||
|
*
|
||||||
|
* @param rdfService from which to retrieve labels: this should typically
|
||||||
|
* be a LanguageFilteringRDFService.
|
||||||
|
*
|
||||||
|
* @param webappDaoFactory may be null. If non-null, labels for classes will be
|
||||||
|
* returned from here first before consulting
|
||||||
|
* rdfService.
|
||||||
|
*
|
||||||
|
* @param headerValue optional value for first value/label pair in the
|
||||||
|
* options list before appending the URIs with their
|
||||||
|
* labels. May be null. Example: empty string
|
||||||
|
*
|
||||||
|
* @param headerLabel optional label for first value/label pair in the
|
||||||
|
* options list before appending the URIs with their
|
||||||
|
* labels. May be null. Example: "Select type"
|
||||||
|
*
|
||||||
|
* @param resourceURIs variable list of resource URI strings
|
||||||
|
*
|
||||||
|
* @return empty ConstantFieldOptions list if resourceURIs is null or empty or
|
||||||
|
* if rdfService is null
|
||||||
|
* @throws RDFServiceException from the supplied rdfService
|
||||||
|
* @throws Exception from ConstantFieldOptions constructor
|
||||||
|
*/
|
||||||
|
public static ConstantFieldOptions buildResourceAndLabelFieldOptions(
|
||||||
|
RDFService rdfService, WebappDaoFactory webappDaoFactory, String headerValue,
|
||||||
|
String headerLabel, String ... resourceURIs) throws Exception {
|
||||||
|
if(resourceURIs == null || resourceURIs.length == 0 || rdfService == null) {
|
||||||
|
return new ConstantFieldOptions();
|
||||||
|
}
|
||||||
|
List<String> options = new ArrayList<String>();
|
||||||
|
if(headerValue != null && headerLabel != null) {
|
||||||
|
options.add(headerValue);
|
||||||
|
options.add(headerLabel);
|
||||||
|
}
|
||||||
|
IRIFactory iriFactory = IRIFactory.iriImplementation();
|
||||||
|
for(String resourceURI : resourceURIs) {
|
||||||
|
IRI iri = iriFactory.create(resourceURI);
|
||||||
|
if(iri.hasViolation(false)) {
|
||||||
|
log.warn("Not adding invalid URI " + resourceURI
|
||||||
|
+ " to field options list");
|
||||||
|
} else {
|
||||||
|
String label = getLabel(iri, rdfService, webappDaoFactory);
|
||||||
|
if(!StringUtils.isEmpty(label)) {
|
||||||
|
options.add(iri.toString());
|
||||||
|
options.add(label);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new ConstantFieldOptions(options.toArray(
|
||||||
|
new String[options.size()]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve label for iri from webappDaoFactory if available and iri is
|
||||||
|
* for a VClass, otherwise retrieve lowest-sorting rdfs:label for iri from
|
||||||
|
* rdfService
|
||||||
|
* @param iri may not be null
|
||||||
|
* @param rdfService may not be null
|
||||||
|
*/
|
||||||
|
private static String getLabel(IRI iri, RDFService rdfService,
|
||||||
|
WebappDaoFactory webappDaoFactory) throws RDFServiceException {
|
||||||
|
// Try the WebappDaoFactory for class labels that exist only in
|
||||||
|
// "everytime" and do not show up in the RDFService.
|
||||||
|
if(webappDaoFactory != null) {
|
||||||
|
VClass vclass = webappDaoFactory.getVClassDao().getVClassByURI(
|
||||||
|
iri.toString());
|
||||||
|
if(vclass != null) {
|
||||||
|
return vclass.getLabel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
StringBuilder select = new StringBuilder("SELECT ?label WHERE { \n");
|
||||||
|
select.append(" <" + iri + "> <" + RDFS.label.getURI() + "> ?label \n");
|
||||||
|
select.append("} ORDER BY ?label");
|
||||||
|
LabelConsumer labelConsumer = new LabelConsumer();
|
||||||
|
rdfService.sparqlSelectQuery(select.toString(), labelConsumer);
|
||||||
|
return labelConsumer.getLabel();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class LabelConsumer extends ResultSetConsumer {
|
||||||
|
|
||||||
|
private String label;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void processQuerySolution(QuerySolution qsoln) {
|
||||||
|
if(label != null) {
|
||||||
|
return;
|
||||||
|
// keep only the first value returned in the result set
|
||||||
|
}
|
||||||
|
if(qsoln.contains("label") && qsoln.get("label").isLiteral()) {
|
||||||
|
label = qsoln.getLiteral("label").getLexicalForm();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLabel() {
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -19,6 +19,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
|
||||||
public class GrantHasContributorGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{
|
public class GrantHasContributorGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{
|
||||||
|
|
||||||
|
@ -92,7 +93,7 @@ public class GrantHasContributorGenerator extends VivoBaseGenerator implements
|
||||||
|
|
||||||
//Add validator
|
//Add validator
|
||||||
conf.addValidator(new AntiXssValidation());
|
conf.addValidator(new AntiXssValidation());
|
||||||
conf.addValidator(new FirstAndLastNameValidator("existingPerson"));
|
conf.addValidator(new FirstAndLastNameValidator("existingPerson", I18n.bundle(vreq)));
|
||||||
|
|
||||||
//Adding additional data, specifically edit mode
|
//Adding additional data, specifically edit mode
|
||||||
addFormSpecificData(conf, vreq);
|
addFormSpecificData(conf, vreq);
|
||||||
|
|
|
@ -15,6 +15,7 @@ import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
@ -41,6 +42,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.FoafNameToRdfsLabelPreprocessor;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.FoafNameToRdfsLabelPreprocessor;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.ManageLabelsForPersonPreprocessor;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors.ManageLabelsForPersonPreprocessor;
|
||||||
import edu.cornell.mannlib.vitro.webapp.i18n.selection.SelectedLocale;
|
import edu.cornell.mannlib.vitro.webapp.i18n.selection.SelectedLocale;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.filter.LanguageFilteringUtils;
|
||||||
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.DataPropertyStatementTemplateModel;
|
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.individual.DataPropertyStatementTemplateModel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -246,12 +248,12 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
|
||||||
|
|
||||||
private void addFormSpecificData(EditConfigurationVTwo config,
|
private void addFormSpecificData(EditConfigurationVTwo config,
|
||||||
VitroRequest vreq) {
|
VitroRequest vreq) {
|
||||||
//Get all language codes/labels in the system, and this list is sorted by language name
|
ArrayList<Literal> existingLabels = this.getExistingLabels(config.getSubjectUri(), vreq);
|
||||||
List<HashMap<String, String>> locales = this.getLocales(vreq);
|
//Get language codes/labels for existing labels, and this list is sorted by language name
|
||||||
|
List<HashMap<String, String>> locales = this.getLocales(vreq, existingLabels);
|
||||||
//Get code to label hashmap - we use this to get the language name for the language code returned in the rdf literal
|
//Get code to label hashmap - we use this to get the language name for the language code returned in the rdf literal
|
||||||
HashMap<String, String> localeCodeToNameMap = this.getFullCodeToLanguageNameMap(locales);
|
HashMap<String, String> localeCodeToNameMap = this.getFullCodeToLanguageNameMap(locales);
|
||||||
//the labels already added by the user
|
//the labels already added by the user
|
||||||
ArrayList<Literal> existingLabels = this.getExistingLabels(config.getSubjectUri(), vreq);
|
|
||||||
int numberExistingLabels = existingLabels.size();
|
int numberExistingLabels = existingLabels.size();
|
||||||
//existing labels keyed by language name and each of the list of labels is sorted by language name
|
//existing labels keyed by language name and each of the list of labels is sorted by language name
|
||||||
HashMap<String, List<LabelInformation>> existingLabelsByLanguageName = this.getLabelsSortedByLanguageName(existingLabels, localeCodeToNameMap, config, vreq);
|
HashMap<String, List<LabelInformation>> existingLabelsByLanguageName = this.getLabelsSortedByLanguageName(existingLabels, localeCodeToNameMap, config, vreq);
|
||||||
|
@ -267,6 +269,19 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
|
||||||
config.addFormSpecificData("selectLocale",availableLocalesForAdd);
|
config.addFormSpecificData("selectLocale",availableLocalesForAdd);
|
||||||
config.addFormSpecificData("displayRemoveLink", (numberExistingLabels > 1));
|
config.addFormSpecificData("displayRemoveLink", (numberExistingLabels > 1));
|
||||||
|
|
||||||
|
// get current selected locale
|
||||||
|
String rangeLang = vreq.getLocale().getLanguage();
|
||||||
|
if (!vreq.getLocale().getCountry().isEmpty()) {
|
||||||
|
rangeLang += "-" + vreq.getLocale().getCountry();
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if locale already has an entry (label)
|
||||||
|
boolean localeEntryExisting = true;
|
||||||
|
for (HashMap<String, String> tmp : availableLocalesForAdd) {
|
||||||
|
if (tmp.get("code").equals(rangeLang)) localeEntryExisting = false;
|
||||||
|
}
|
||||||
|
config.addFormSpecificData("localeEntryExisting", localeEntryExisting);
|
||||||
|
config.addFormSpecificData("currentSelectedLocale", rangeLang);
|
||||||
|
|
||||||
//How do we edit? Will need to see
|
//How do we edit? Will need to see
|
||||||
config.addFormSpecificData("deleteWebpageUrl", "/edit/primitiveDelete");
|
config.addFormSpecificData("deleteWebpageUrl", "/edit/primitiveDelete");
|
||||||
|
@ -426,21 +441,20 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
|
||||||
|
|
||||||
ArrayList<Literal> labels = new ArrayList<Literal>();
|
ArrayList<Literal> labels = new ArrayList<Literal>();
|
||||||
try {
|
try {
|
||||||
//We want to get the labels for all the languages, not just the display language
|
// No longer retrieving language-neutral results here, so that
|
||||||
ResultSet results = QueryUtils.getLanguageNeutralQueryResults(queryStr, vreq);
|
// language editing is consistent with other editing forms.
|
||||||
|
// Editable values depend on the interface's locale selector.
|
||||||
|
ResultSet results = QueryUtils.getQueryResults(queryStr, vreq);
|
||||||
while (results.hasNext()) {
|
while (results.hasNext()) {
|
||||||
QuerySolution soln = results.nextSolution();
|
QuerySolution soln = results.nextSolution();
|
||||||
Literal nodeLiteral = soln.get("label").asLiteral();
|
Literal nodeLiteral = soln.get("label").asLiteral();
|
||||||
labels.add(nodeLiteral);
|
labels.add(nodeLiteral);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e, e);
|
log.error(e, e);
|
||||||
}
|
}
|
||||||
return labels;
|
return labels;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Putting this into a method allows overriding it in subclasses
|
//Putting this into a method allows overriding it in subclasses
|
||||||
|
@ -454,30 +468,32 @@ public class ManageLabelsForPersonGenerator extends BaseEditConfigurationGenerat
|
||||||
return template;
|
return template;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//get locales present in list of literals
|
||||||
|
public List<HashMap<String, String>> getLocales(VitroRequest vreq,
|
||||||
//get locales
|
List<Literal> existingLiterals) {
|
||||||
public List<HashMap<String, String>> getLocales(VitroRequest vreq) {
|
Set<Locale> locales = new HashSet<Locale>();
|
||||||
List<Locale> selectables = SelectedLocale.getSelectableLocales(vreq);
|
for(Literal literal : existingLiterals) {
|
||||||
if (selectables.isEmpty()) {
|
String language = literal.getLanguage();
|
||||||
|
if(!StringUtils.isEmpty(language)) {
|
||||||
|
locales.add(LanguageFilteringUtils.languageToLocale(language));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (locales.isEmpty()) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
|
List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
|
||||||
Locale currentLocale = SelectedLocale.getCurrentLocale(vreq);
|
Locale currentLocale = SelectedLocale.getCurrentLocale(vreq);
|
||||||
for (Locale locale : selectables) {
|
for (Locale locale : locales) {
|
||||||
try {
|
try {
|
||||||
list.add(buildLocaleMap(locale, currentLocale));
|
list.add(buildLocaleMap(locale, currentLocale));
|
||||||
} catch (FileNotFoundException e) {
|
} catch (FileNotFoundException e) {
|
||||||
log.warn("Can't show the Locale selector for '" + locale
|
log.warn("Can't show locale '" + locale + "': " + e);
|
||||||
+ "': " + e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public HashMap<String, String> getFullCodeToLanguageNameMap(List<HashMap<String, String>> localesList) {
|
public HashMap<String, String> getFullCodeToLanguageNameMap(List<HashMap<String, String>> localesList) {
|
||||||
HashMap<String, String> codeToLanguageMap = new HashMap<String, String>();
|
HashMap<String, String> codeToLanguageMap = new HashMap<String, String>();
|
||||||
for(Map<String, String> locale: localesList) {
|
for(Map<String, String> locale: localesList) {
|
||||||
|
|
|
@ -3,20 +3,20 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
import org.apache.jena.query.QueryExecution;
|
|
||||||
import org.apache.jena.query.QueryExecutionFactory;
|
|
||||||
import org.apache.jena.rdf.model.Model;
|
|
||||||
import org.apache.jena.rdf.model.ModelFactory;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.apache.jena.query.ParameterizedSparqlString;
|
||||||
|
import org.apache.jena.query.QueryExecution;
|
||||||
|
import org.apache.jena.query.QueryExecutionFactory;
|
||||||
import org.apache.jena.query.QuerySolution;
|
import org.apache.jena.query.QuerySolution;
|
||||||
import org.apache.jena.query.ResultSet;
|
import org.apache.jena.query.ResultSet;
|
||||||
|
import org.apache.jena.rdf.model.Model;
|
||||||
|
import org.apache.jena.rdf.model.ModelFactory;
|
||||||
import org.apache.jena.rdf.model.RDFNode;
|
import org.apache.jena.rdf.model.RDFNode;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
|
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
|
||||||
|
@ -26,6 +26,8 @@ import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder.ParamMa
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.QueryUtils;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.QueryUtils;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.selection.SelectedLocale;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an odd controller that is just drawing a page with links on it.
|
* This is an odd controller that is just drawing a page with links on it.
|
||||||
|
@ -153,16 +155,36 @@ public class ManageWebpagesForIndividualGenerator extends BaseEditConfigurationG
|
||||||
+ "PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> \n"
|
+ "PREFIX vcard: <http://www.w3.org/2006/vcard/ns#> \n"
|
||||||
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
|
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n"
|
||||||
+ "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n"
|
+ "PREFIX vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> \n"
|
||||||
+ "SELECT DISTINCT ?vcard ?link ?url ?rank ?typeLabel (group_concat(distinct ?linkLabel;separator=\"/\") as ?label) WHERE { \n"
|
+ "SELECT DISTINCT ?vcard ?link ?url (MIN(?rank_) AS ?rank) \n"
|
||||||
|
+ "(MIN(?typeLabel_) AS ?typeLabel) \n"
|
||||||
|
+ "(group_concat(distinct ?linkLabel;separator=\"/\") as ?label) WHERE { \n"
|
||||||
+ " ?subject <http://purl.obolibrary.org/obo/ARG_2000028> ?vcard . \n"
|
+ " ?subject <http://purl.obolibrary.org/obo/ARG_2000028> ?vcard . \n"
|
||||||
+ " ?vcard vcard:hasURL ?link . \n"
|
+ " ?vcard vcard:hasURL ?link . \n"
|
||||||
+ " ?link a vcard:URL \n"
|
+ " ?link a vcard:URL \n"
|
||||||
+ " OPTIONAL { ?link vcard:url ?url } \n"
|
+ " OPTIONAL { ?link vcard:url ?url } \n"
|
||||||
+ " OPTIONAL { ?link rdfs:label ?linkLabel } \n"
|
+ " OPTIONAL { ?link rdfs:label ?linkLabel } \n"
|
||||||
+ " OPTIONAL { ?link core:rank ?rank } \n"
|
+ " OPTIONAL { ?link core:rank ?rank_ } \n"
|
||||||
+ " OPTIONAL { ?link vitro:mostSpecificType ?type } \n"
|
+ " OPTIONAL { ?link vitro:mostSpecificType ?type } \n"
|
||||||
+ " OPTIONAL { ?type rdfs:label ?typeLabel } \n"
|
// UQAM-Linguistic-Management Add linguistic control on label
|
||||||
+ "} GROUP BY ?rank ?vcard ?link ?url ?typeLabel \n"
|
// Try full locale
|
||||||
|
+ " OPTIONAL { ?type rdfs:label ?typeLabelPrimary . \n"
|
||||||
|
+ " FILTER (LANG(?typeLabelPrimary) = ?locale) \n"
|
||||||
|
+ " } \n"
|
||||||
|
// Try language only
|
||||||
|
+ " OPTIONAL { ?type rdfs:label ?typeLabelSecondary . \n"
|
||||||
|
+ " FILTER (LANG(?typeLabelSecondary) = ?language) \n"
|
||||||
|
+ " } \n"
|
||||||
|
// Try the same language in another other locale
|
||||||
|
+ " OPTIONAL { ?type rdfs:label ?typeLabelTertiary . \n"
|
||||||
|
+ " FILTER (STRBEFORE(STR(LANG(?typeLabelTertiary)), \"-\") = ?language) \n"
|
||||||
|
+ " } \n"
|
||||||
|
// Try any other available label
|
||||||
|
+ " OPTIONAL { ?type rdfs:label ?typeLabelFallback . \n"
|
||||||
|
+ " FILTER (LANG(?typeLabelFallback) != ?locale \n"
|
||||||
|
+ " && LANG(?typeLabelFallback) != ?language) \n"
|
||||||
|
+ " } \n"
|
||||||
|
+ " BIND(COALESCE(?typeLabelPrimary, ?typeLabelSecondary, ?typeLabelTertiary, ?typeLabelFallback) AS ?typeLabel_) \n"
|
||||||
|
+ "} GROUP BY ?vcard ?link ?url \n"
|
||||||
+ " ORDER BY ?rank";
|
+ " ORDER BY ?rank";
|
||||||
|
|
||||||
|
|
||||||
|
@ -175,8 +197,10 @@ public class ManageWebpagesForIndividualGenerator extends BaseEditConfigurationG
|
||||||
|
|
||||||
Model constructedModel = ModelFactory.createDefaultModel();
|
Model constructedModel = ModelFactory.createDefaultModel();
|
||||||
rdfService.sparqlConstructQuery(constructStr, constructedModel);
|
rdfService.sparqlConstructQuery(constructStr, constructedModel);
|
||||||
|
/*
|
||||||
String queryStr = QueryUtils.subUriForQueryVar(this.getQuery(), "subject", subjectUri);
|
* UQAM-Linguistic-Management Adjust the getQuery signature for managing the linguistic context
|
||||||
|
*/
|
||||||
|
String queryStr = QueryUtils.subUriForQueryVar(this.getQuery(vreq), "subject", subjectUri);
|
||||||
log.debug("Query string is: " + queryStr);
|
log.debug("Query string is: " + queryStr);
|
||||||
|
|
||||||
QueryExecution qe = QueryExecutionFactory.create(queryStr, constructedModel);
|
QueryExecution qe = QueryExecutionFactory.create(queryStr, constructedModel);
|
||||||
|
@ -205,8 +229,16 @@ public class ManageWebpagesForIndividualGenerator extends BaseEditConfigurationG
|
||||||
return AddEditWebpageFormGenerator.class.getName();
|
return AddEditWebpageFormGenerator.class.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String getQuery() {
|
protected String getQuery(VitroRequest vreq) {
|
||||||
return WEBPAGE_QUERY;
|
/*
|
||||||
|
* UQAM-Linguistic-Management Adjust the query to the linguistic context
|
||||||
|
*/
|
||||||
|
Locale locale = SelectedLocale.getCurrentLocale(vreq);
|
||||||
|
ParameterizedSparqlString queryPstr = new ParameterizedSparqlString(
|
||||||
|
WEBPAGE_QUERY);
|
||||||
|
queryPstr.setLiteral("locale", locale.toString().replace("_", "-"));
|
||||||
|
queryPstr.setLiteral("language", locale.getLanguage());
|
||||||
|
return queryPstr.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String getTemplate() {
|
protected String getTemplate() {
|
||||||
|
|
|
@ -22,6 +22,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsVi
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
|
||||||
public class OrganizationForTrainingGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{
|
public class OrganizationForTrainingGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{
|
||||||
|
|
||||||
|
@ -166,7 +167,7 @@ public class OrganizationForTrainingGenerator extends VivoBaseGenerator impleme
|
||||||
//Add validator
|
//Add validator
|
||||||
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
|
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
|
||||||
conf.addValidator(new AntiXssValidation());
|
conf.addValidator(new AntiXssValidation());
|
||||||
conf.addValidator(new FirstAndLastNameValidator("existingPerson"));
|
conf.addValidator(new FirstAndLastNameValidator("existingPerson", I18n.bundle(vreq)));
|
||||||
|
|
||||||
//Adding additional data, specifically edit mode
|
//Adding additional data, specifically edit mode
|
||||||
addFormSpecificData(conf, vreq);
|
addFormSpecificData(conf, vreq);
|
||||||
|
|
|
@ -17,6 +17,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.DateTimeWithPrecisio
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesWithParent;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClassesWithParent;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
|
||||||
public class OrganizationHasPositionHistoryGenerator extends VivoBaseGenerator
|
public class OrganizationHasPositionHistoryGenerator extends VivoBaseGenerator
|
||||||
implements EditConfigurationGenerator {
|
implements EditConfigurationGenerator {
|
||||||
|
@ -256,7 +257,7 @@ public class OrganizationHasPositionHistoryGenerator extends VivoBaseGenerator
|
||||||
conf.addField(endField.setEditElement(new DateTimeWithPrecisionVTwo(
|
conf.addField(endField.setEditElement(new DateTimeWithPrecisionVTwo(
|
||||||
endField, URI_PRECISION_YEAR, URI_PRECISION_NONE)));
|
endField, URI_PRECISION_YEAR, URI_PRECISION_NONE)));
|
||||||
|
|
||||||
conf.addValidator(new FirstAndLastNameValidator("existingPerson"));
|
conf.addValidator(new FirstAndLastNameValidator("existingPerson", I18n.bundle(vreq)));
|
||||||
conf.addValidator(new AntiXssValidation());
|
conf.addValidator(new AntiXssValidation());
|
||||||
conf.addValidator(new DateTimeIntervalValidationVTwo("startField",
|
conf.addValidator(new DateTimeIntervalValidationVTwo("startField",
|
||||||
"endField"));
|
"endField"));
|
||||||
|
|
|
@ -20,6 +20,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClasses
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsViaVClassOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsViaVClassOptions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
|
||||||
public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator implements
|
public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator implements
|
||||||
EditConfigurationGenerator {
|
EditConfigurationGenerator {
|
||||||
|
@ -184,7 +185,7 @@ public class PersonHasAdviseeRelationshipGenerator extends VivoBaseGenerator imp
|
||||||
|
|
||||||
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
|
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
|
||||||
conf.addValidator(new AntiXssValidation());
|
conf.addValidator(new AntiXssValidation());
|
||||||
conf.addValidator(new FirstAndLastNameValidator("existingAdvisor"));
|
conf.addValidator(new FirstAndLastNameValidator("existingAdvisor", I18n.bundle(vreq)));
|
||||||
addFormSpecificData(conf, vreq);
|
addFormSpecificData(conf, vreq);
|
||||||
|
|
||||||
prepare(vreq, conf);
|
prepare(vreq, conf);
|
||||||
|
|
|
@ -20,6 +20,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.ChildVClasses
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsViaVClassOptions;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.IndividualsViaVClassOptions;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
|
||||||
public class PersonHasAdvisorRelationshipGenerator extends VivoBaseGenerator implements
|
public class PersonHasAdvisorRelationshipGenerator extends VivoBaseGenerator implements
|
||||||
EditConfigurationGenerator {
|
EditConfigurationGenerator {
|
||||||
|
@ -184,7 +185,7 @@ public class PersonHasAdvisorRelationshipGenerator extends VivoBaseGenerator imp
|
||||||
|
|
||||||
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
|
conf.addValidator(new DateTimeIntervalValidationVTwo("startField","endField"));
|
||||||
conf.addValidator(new AntiXssValidation());
|
conf.addValidator(new AntiXssValidation());
|
||||||
conf.addValidator(new FirstAndLastNameValidator("existingAdvisee"));
|
conf.addValidator(new FirstAndLastNameValidator("existingAdvisee", I18n.bundle(vreq)));
|
||||||
addFormSpecificData(conf, vreq);
|
addFormSpecificData(conf, vreq);
|
||||||
|
|
||||||
prepare(vreq, conf);
|
prepare(vreq, conf);
|
||||||
|
|
|
@ -17,6 +17,7 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields.FieldVTwo;
|
||||||
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.validators.AntiXssValidation;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
import edu.cornell.mannlib.vitro.webapp.utils.FrontEndEditingUtils.EditMode;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
import edu.cornell.mannlib.vitro.webapp.utils.generators.EditModeUtils;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.i18n.I18n;
|
||||||
|
|
||||||
public class ProjectHasParticipantGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{
|
public class ProjectHasParticipantGenerator extends VivoBaseGenerator implements EditConfigurationGenerator{
|
||||||
|
|
||||||
|
@ -92,7 +93,7 @@ public class ProjectHasParticipantGenerator extends VivoBaseGenerator implement
|
||||||
|
|
||||||
//Add validator
|
//Add validator
|
||||||
conf.addValidator(new AntiXssValidation());
|
conf.addValidator(new AntiXssValidation());
|
||||||
conf.addValidator(new FirstAndLastNameValidator("existingPerson"));
|
conf.addValidator(new FirstAndLastNameValidator("existingPerson", I18n.bundle(vreq)));
|
||||||
|
|
||||||
//Adding additional data, specifically edit mode
|
//Adding additional data, specifically edit mode
|
||||||
addFormSpecificData(conf, vreq);
|
addFormSpecificData(conf, vreq);
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.utilities;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.apache.jena.ontology.OntModel;
|
||||||
|
import org.apache.jena.rdf.model.ModelFactory;
|
||||||
|
import org.apache.jena.rdf.model.RDFNode;
|
||||||
|
import org.apache.jena.rdf.model.ResourceFactory;
|
||||||
|
import org.apache.jena.rdf.model.Statement;
|
||||||
|
import org.apache.jena.rdf.model.StmtIterator;
|
||||||
|
import org.apache.jena.vocabulary.RDFS;
|
||||||
|
|
||||||
|
|
||||||
|
public class Describe {
|
||||||
|
private static final Log log = LogFactory.getLog(Describe.class.getName());
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
OntModel model = ModelFactory.createOntologyModel();
|
||||||
|
model.read("C:\\VIVO-Trad-ecosysteme\\vivo\\home\\rdf\\applicationMetadata\\firsttime\\classgroups_fr_CA.rdf") ;
|
||||||
|
model.read("C:\\VIVO-Trad-ecosysteme\\vivo\\home\\rdf\\applicationMetadata\\firsttime\\classgroups.rdf") ;
|
||||||
|
Describe.showVitroClassGroupequipmentLabels(model,"test");
|
||||||
|
System.out.println("Done!");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void showVitroClassGroupequipmentLabels(OntModel model, String message) {
|
||||||
|
String uri = "http://vivoweb.org/ontology#vitroClassGroupequipment";
|
||||||
|
List<Statement> stmts = model.listStatements(ResourceFactory.createResource(uri), RDFS.label, (RDFNode)null).toList();
|
||||||
|
for (Iterator iterator = stmts.iterator(); iterator.hasNext();) {
|
||||||
|
Statement statement = (Statement) iterator.next();
|
||||||
|
log.debug("\t\t"+message + " " +statement);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -12,6 +12,7 @@ import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
import edu.cornell.mannlib.semservices.bo.Concept;
|
import edu.cornell.mannlib.semservices.bo.Concept;
|
||||||
import edu.cornell.mannlib.semservices.service.ExternalConceptService;
|
import edu.cornell.mannlib.semservices.service.ExternalConceptService;
|
||||||
|
import edu.cornell.mannlib.semservices.service.impl.UMLSService;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
/**
|
/**
|
||||||
* Utilities for search
|
* Utilities for search
|
||||||
|
@ -38,7 +39,9 @@ public class ConceptSearchServiceUtils {
|
||||||
//URL to label
|
//URL to label
|
||||||
public static HashMap<String, VocabSourceDescription> getVocabSources() {
|
public static HashMap<String, VocabSourceDescription> getVocabSources() {
|
||||||
HashMap<String, VocabSourceDescription> map = new HashMap<String, VocabSourceDescription>();
|
HashMap<String, VocabSourceDescription> map = new HashMap<String, VocabSourceDescription>();
|
||||||
|
if(UMLSService.configurationFileExists()) {
|
||||||
map.put(UMLSVocabSource, new VocabSourceDescription("UMLS", UMLSVocabSource, "http://www.nlm.nih.gov/research/umls/", "Unified Medical Language System"));
|
map.put(UMLSVocabSource, new VocabSourceDescription("UMLS", UMLSVocabSource, "http://www.nlm.nih.gov/research/umls/", "Unified Medical Language System"));
|
||||||
|
}
|
||||||
//Commenting out agrovoc for now until implementation is updated
|
//Commenting out agrovoc for now until implementation is updated
|
||||||
map.put(AgrovocVocabSource, new VocabSourceDescription("AGROVOC", AgrovocVocabSource, "http://www.fao.org/agrovoc/", "Agricultural Vocabulary"));
|
map.put(AgrovocVocabSource, new VocabSourceDescription("AGROVOC", AgrovocVocabSource, "http://www.fao.org/agrovoc/", "Agricultural Vocabulary"));
|
||||||
map.put(GemetVocabSource, new VocabSourceDescription("GEMET", GemetVocabSource, "http://www.eionet.europa.eu/gemet", "GEneral Multilingual Environmental Thesaurus"));
|
map.put(GemetVocabSource, new VocabSourceDescription("GEMET", GemetVocabSource, "http://www.eionet.europa.eu/gemet", "GEneral Multilingual Environmental Thesaurus"));
|
||||||
|
@ -53,6 +56,7 @@ public class ConceptSearchServiceUtils {
|
||||||
//Get the hashmap mapping service name to Service class
|
//Get the hashmap mapping service name to Service class
|
||||||
private static HashMap<String, String> getMapping() {
|
private static HashMap<String, String> getMapping() {
|
||||||
HashMap<String, String> map = new HashMap<String, String>();
|
HashMap<String, String> map = new HashMap<String, String>();
|
||||||
|
|
||||||
map.put(UMLSVocabSource, "edu.cornell.mannlib.semservices.service.impl.UMLSService");
|
map.put(UMLSVocabSource, "edu.cornell.mannlib.semservices.service.impl.UMLSService");
|
||||||
map.put(AgrovocVocabSource, "edu.cornell.mannlib.semservices.service.impl.AgrovocService");
|
map.put(AgrovocVocabSource, "edu.cornell.mannlib.semservices.service.impl.AgrovocService");
|
||||||
map.put(GemetVocabSource, "edu.cornell.mannlib.semservices.service.impl.GemetService");
|
map.put(GemetVocabSource, "edu.cornell.mannlib.semservices.service.impl.GemetService");
|
||||||
|
|
|
@ -54,10 +54,16 @@ public class CapabilityMapRequestHandler implements VisualizationRequestHandler
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object generateAjaxVisualization(VitroRequest vitroRequest, Log log, Dataset dataSource) throws MalformedQueryParametersException, JsonProcessingException {
|
public Object generateAjaxVisualization(VitroRequest vitroRequest, Log log, Dataset dataSource) throws MalformedQueryParametersException, JsonProcessingException {
|
||||||
ConceptLabelMap conceptLabelMap = VisualizationCaches.conceptToLabel.getNoWait(vitroRequest.getRDFService());
|
RDFService rdfService = vitroRequest.getRDFService();
|
||||||
ConceptPeopleMap conceptPeopleMap = VisualizationCaches.conceptToPeopleMap.getNoWait(vitroRequest.getRDFService());
|
rdfService.setVitroRequest(vitroRequest);
|
||||||
OrganizationPeopleMap organizationPeopleMap = VisualizationCaches.organisationToPeopleMap.getNoWait(vitroRequest.getRDFService());
|
// VisualizationCaches.rebuildAll(rdfService);
|
||||||
Map<String, String> organizationLabels = VisualizationCaches.organizationLabels.getNoWait(vitroRequest.getRDFService());
|
// VisualizationCaches.conceptToLabel.build(rdfService);
|
||||||
|
// ConceptLabelMap conceptLabelMap = VisualizationCaches.conceptToLabel.getNoWait(rdfService);
|
||||||
|
// UQAM-Bug-Correction Refresh all memory models with appropriate liguistic labels
|
||||||
|
ConceptLabelMap conceptLabelMap = VisualizationCaches.conceptToLabel.get(rdfService, true, true);
|
||||||
|
ConceptPeopleMap conceptPeopleMap = VisualizationCaches.conceptToPeopleMap.getNoWait(rdfService);
|
||||||
|
OrganizationPeopleMap organizationPeopleMap = VisualizationCaches.organisationToPeopleMap.getNoWait(rdfService);
|
||||||
|
Map<String, String> organizationLabels = VisualizationCaches.organizationLabels.getNoWait(rdfService);
|
||||||
|
|
||||||
String data = vitroRequest.getParameter("data");
|
String data = vitroRequest.getParameter("data");
|
||||||
if (!StringUtils.isEmpty(data)) {
|
if (!StringUtils.isEmpty(data)) {
|
||||||
|
|
|
@ -2,8 +2,10 @@
|
||||||
|
|
||||||
package edu.cornell.mannlib.vitro.webapp.visualization.utilities;
|
package edu.cornell.mannlib.vitro.webapp.visualization.utilities;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||||
import edu.cornell.mannlib.vitro.webapp.utils.threads.VitroBackgroundThread;
|
import edu.cornell.mannlib.vitro.webapp.utils.threads.VitroBackgroundThread;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.model.ConceptLabelMap;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -85,7 +87,69 @@ public class CachingRDFServiceExecutor<T> {
|
||||||
if (backgroundTask != null && backgroundTask.isDone()) {
|
if (backgroundTask != null && backgroundTask.isDone()) {
|
||||||
completeBackgroundTask();
|
completeBackgroundTask();
|
||||||
}
|
}
|
||||||
|
// If we have cached results
|
||||||
|
if (cachedResults != null) {
|
||||||
|
// If the background service exists, and the cache is considered invalid
|
||||||
|
|
||||||
|
if (backgroundRDFService != null && resultBuilder.invalidateCache(System.currentTimeMillis() - lastCacheTime)) {
|
||||||
|
// In most cases, only wait for half a second
|
||||||
|
long waitFor = 500;
|
||||||
|
|
||||||
|
if (backgroundTask == null) {
|
||||||
|
// Start the background task to refresh the cache
|
||||||
|
startBackgroundTask(backgroundRDFService);
|
||||||
|
|
||||||
|
// As we've just started the background task, allow a wait time of 1 second
|
||||||
|
waitFor = 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
// See if we expect it to complete in time, and if so, wait for it
|
||||||
|
if (allowWaits && isExpectedToCompleteIn(waitFor)) {
|
||||||
|
completeBackgroundTask(waitFor);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// No cached results, so fetch the results using any available RDF service
|
||||||
|
if (rdfService != null) {
|
||||||
|
startBackgroundTask(rdfService);
|
||||||
|
} else if (backgroundRDFService != null) {
|
||||||
|
startBackgroundTask(backgroundRDFService);
|
||||||
|
} else {
|
||||||
|
throw new RuntimeException("Can't execute without an RDF Service");
|
||||||
|
}
|
||||||
|
|
||||||
|
// As there are no cached results, wait for an answer regardless of the RDF service used
|
||||||
|
completeBackgroundTask();
|
||||||
|
}
|
||||||
|
return cachedResults;
|
||||||
|
}
|
||||||
|
|
||||||
|
public synchronized T get(RDFService rdfService, boolean allowWaits, boolean force) {
|
||||||
|
/*
|
||||||
|
* UQAM-Bug-Correction
|
||||||
|
* Forces the regeneration of the result
|
||||||
|
*/
|
||||||
|
if (force) {
|
||||||
|
try {
|
||||||
|
String backLang = backgroundRDFService.getVitroRequest().getLocale().getLanguage();
|
||||||
|
String srvLang = rdfService.getVitroRequest().getLocale().getLanguage();
|
||||||
|
if (!backLang.equals(srvLang)) {
|
||||||
|
backgroundRDFService.setVitroRequest(rdfService.getVitroRequest());
|
||||||
|
startBackgroundTask(rdfService);
|
||||||
|
completeBackgroundTask();
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
backgroundRDFService.setVitroRequest(rdfService.getVitroRequest());
|
||||||
|
startBackgroundTask(rdfService);
|
||||||
|
completeBackgroundTask();
|
||||||
|
}
|
||||||
|
return cachedResults;
|
||||||
|
}
|
||||||
|
// First, check if there are results from the previous background task, and update the cache
|
||||||
|
if (backgroundTask != null && backgroundTask.isDone()) {
|
||||||
|
completeBackgroundTask();
|
||||||
|
}
|
||||||
// If we have cached results
|
// If we have cached results
|
||||||
if (cachedResults != null) {
|
if (cachedResults != null) {
|
||||||
// If the background service exists, and the cache is considered invalid
|
// If the background service exists, and the cache is considered invalid
|
||||||
|
|
|
@ -9,6 +9,8 @@ import org.apache.jena.rdf.model.Literal;
|
||||||
import org.apache.jena.rdf.model.Model;
|
import org.apache.jena.rdf.model.Model;
|
||||||
import org.apache.jena.rdf.model.ModelFactory;
|
import org.apache.jena.rdf.model.ModelFactory;
|
||||||
import org.apache.jena.rdf.model.Resource;
|
import org.apache.jena.rdf.model.Resource;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
|
||||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
|
||||||
|
@ -232,13 +234,37 @@ final public class VisualizationCaches {
|
||||||
new CachingRDFServiceExecutor.RDFServiceCallable<Map<String, String>>(visualizationAffinity) {
|
new CachingRDFServiceExecutor.RDFServiceCallable<Map<String, String>>(visualizationAffinity) {
|
||||||
@Override
|
@Override
|
||||||
protected Map<String, String> callWithService(RDFService rdfService) throws Exception {
|
protected Map<String, String> callWithService(RDFService rdfService) throws Exception {
|
||||||
|
// get current selected language tag
|
||||||
|
VitroRequest vreq = rdfService.getVitroRequest();
|
||||||
|
String langCtx = "en-US"; // set default
|
||||||
|
String language = "en"; // set fallback language
|
||||||
|
try {
|
||||||
|
langCtx = language = vreq.getLocale().getLanguage();
|
||||||
|
if (!vreq.getLocale().getCountry().isEmpty()) {
|
||||||
|
langCtx += "-" + vreq.getLocale().getCountry();
|
||||||
|
}
|
||||||
|
} catch (Exception e) { }
|
||||||
|
|
||||||
String query = QueryConstants.getSparqlPrefixQuery() +
|
String query = QueryConstants.getSparqlPrefixQuery() +
|
||||||
"SELECT ?org ?orgLabel\n" +
|
"SELECT ?org (Min(?orgLabel_) AS ?orgLabel) \n" +
|
||||||
"WHERE\n" +
|
"WHERE\n" +
|
||||||
"{\n" +
|
"{\n" +
|
||||||
" ?org a foaf:Organization .\n" +
|
" ?org a foaf:Organization \n" +
|
||||||
" ?org rdfs:label ?orgLabel .\n" +
|
" OPTIONAL { ?org rdfs:label ?orgLabelPrimary . \n" +
|
||||||
"}\n";
|
" FILTER (LANG(?orgLabelPrimary) = '" + langCtx + "') \n" +
|
||||||
|
"} \n" +
|
||||||
|
" OPTIONAL { ?org rdfs:label ?orgLabelSecondary . \n" +
|
||||||
|
" FILTER (LANG(?orgLabelSecondary) = '" + language + "') \n" +
|
||||||
|
"} \n" +
|
||||||
|
" OPTIONAL { ?org rdfs:label ?orgLabelTertiary .\n" +
|
||||||
|
" FILTER (STRBEFORE(STR(LANG(?orgLabelTertiary)), '-') = '" + language + "') \n" +
|
||||||
|
"} \n" +
|
||||||
|
" OPTIONAL { ?org rdfs:label ?orgLabelFallback .\n" +
|
||||||
|
" FILTER (LANG(?orgLabelFallback) != '" + langCtx + "' \n" +
|
||||||
|
" && LANG(?orgLabelFallback) != '" + language + "' ) \n" +
|
||||||
|
"} \n" +
|
||||||
|
"BIND(COALESCE(?orgLabelPrimary, ?orgLabelSecondary, ?orgLabelTertiary, ?orgLabelFallback) AS ?orgLabel_) \n" +
|
||||||
|
"} GROUP BY ?org \n";
|
||||||
|
|
||||||
final Map<String, String> map = new HashMap<>();
|
final Map<String, String> map = new HashMap<>();
|
||||||
|
|
||||||
|
@ -390,6 +416,16 @@ final public class VisualizationCaches {
|
||||||
new CachingRDFServiceExecutor.RDFServiceCallable<ConceptLabelMap>() {
|
new CachingRDFServiceExecutor.RDFServiceCallable<ConceptLabelMap>() {
|
||||||
@Override
|
@Override
|
||||||
protected ConceptLabelMap callWithService(RDFService rdfService) throws Exception {
|
protected ConceptLabelMap callWithService(RDFService rdfService) throws Exception {
|
||||||
|
VitroRequest vreq = rdfService.getVitroRequest();
|
||||||
|
String langCtx = "en-US";
|
||||||
|
// UQAM-Optimization Adjust to linguistic context
|
||||||
|
try {
|
||||||
|
langCtx = vreq.getLocale().getLanguage();
|
||||||
|
if (!vreq.getLocale().getCountry().isEmpty()) {
|
||||||
|
langCtx += "-" + vreq.getLocale().getCountry();
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
}
|
||||||
String query = QueryConstants.getSparqlPrefixQuery() +
|
String query = QueryConstants.getSparqlPrefixQuery() +
|
||||||
"SELECT ?concept ?label\n" +
|
"SELECT ?concept ?label\n" +
|
||||||
"WHERE\n" +
|
"WHERE\n" +
|
||||||
|
@ -398,13 +434,13 @@ final public class VisualizationCaches {
|
||||||
" ?person core:hasResearchArea ?concept .\n" +
|
" ?person core:hasResearchArea ?concept .\n" +
|
||||||
" ?concept a skos:Concept .\n" +
|
" ?concept a skos:Concept .\n" +
|
||||||
" ?concept rdfs:label ?label .\n" +
|
" ?concept rdfs:label ?label .\n" +
|
||||||
|
" FILTER (lang(?label) = '" + langCtx+"' ) \n" +
|
||||||
"}\n";
|
"}\n";
|
||||||
|
|
||||||
// final Map<String, String> map = new HashMap<>();
|
// final Map<String, String> map = new HashMap<>();
|
||||||
final ConceptLabelMap map = new ConceptLabelMap();
|
final ConceptLabelMap map = new ConceptLabelMap();
|
||||||
|
|
||||||
rdfService.sparqlSelectQuery(query, new ResultSetConsumer() {
|
rdfService.sparqlSelectQuery(query, new ResultSetConsumer() {
|
||||||
@Override
|
|
||||||
protected void processQuerySolution(QuerySolution qs) {
|
protected void processQuerySolution(QuerySolution qs) {
|
||||||
String conceptURI = qs.getResource("concept").getURI().intern();
|
String conceptURI = qs.getResource("concept").getURI().intern();
|
||||||
String label = qs.getLiteral("label").getString().intern();
|
String label = qs.getLiteral("label").getString().intern();
|
||||||
|
|
|
@ -2,29 +2,40 @@
|
||||||
|
|
||||||
package org.vivoweb.webapp.sitemap;
|
package org.vivoweb.webapp.sitemap;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import java.io.FileInputStream;
|
||||||
import org.apache.jena.query.QuerySolution;
|
import java.io.IOException;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
|
import java.io.InputStream;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
import java.util.ArrayList;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
|
import java.util.List;
|
||||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
|
|
||||||
import org.apache.commons.io.IOUtils;
|
|
||||||
|
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
import javax.servlet.ServletOutputStream;
|
import javax.servlet.ServletOutputStream;
|
||||||
import javax.servlet.annotation.WebServlet;
|
import javax.servlet.annotation.WebServlet;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.IOException;
|
import org.apache.commons.io.IOUtils;
|
||||||
import java.io.InputStream;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.apache.jena.query.QuerySolution;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFServiceException;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.visualization.constants.QueryConstants;
|
||||||
|
|
||||||
@WebServlet(name = "SiteMapServlet", urlPatterns = {"/robots.txt","/sitemap.xml"})
|
@WebServlet(name = "SiteMapServlet", urlPatterns = {"/robots.txt","/sitemap.xml"})
|
||||||
public class SiteMapServlet extends VitroHttpServlet {
|
public class SiteMapServlet extends VitroHttpServlet {
|
||||||
|
|
||||||
|
private static final int MAX_URLS = 50000; // max URLs per sitemap
|
||||||
|
private static final Log log = LogFactory.getLog(SiteMapServlet.class);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
||||||
|
throws ServletException, IOException {
|
||||||
String requestURI = request.getRequestURI();
|
String requestURI = request.getRequestURI();
|
||||||
|
|
||||||
if (requestURI != null) {
|
if (requestURI != null) {
|
||||||
|
@ -60,7 +71,7 @@ public class SiteMapServlet extends VitroHttpServlet {
|
||||||
"WHERE\n" +
|
"WHERE\n" +
|
||||||
"{\n" +
|
"{\n" +
|
||||||
" ?person a foaf:Person .\n" +
|
" ?person a foaf:Person .\n" +
|
||||||
"}\n";
|
"} LIMIT " + MAX_URLS + "\n";
|
||||||
|
|
||||||
final VitroRequest vreq = new VitroRequest(request);
|
final VitroRequest vreq = new VitroRequest(request);
|
||||||
final ServletOutputStream out = response.getOutputStream();
|
final ServletOutputStream out = response.getOutputStream();
|
||||||
|
@ -68,14 +79,21 @@ public class SiteMapServlet extends VitroHttpServlet {
|
||||||
out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
|
out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
|
||||||
out.println("<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">");
|
out.println("<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">");
|
||||||
|
|
||||||
|
List<String> personURIs = new ArrayList<String>();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
vreq.getRDFService().sparqlSelectQuery(query, new ResultSetConsumer() {
|
vreq.getRDFService().sparqlSelectQuery(query, new ResultSetConsumer() {
|
||||||
@Override
|
@Override
|
||||||
protected void processQuerySolution(QuerySolution qs) {
|
protected void processQuerySolution(QuerySolution qs) {
|
||||||
String person = qs.getResource("person").getURI();
|
personURIs.add(qs.getResource("person").getURI());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (RDFServiceException rse) {
|
||||||
|
log.error(rse, rse);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(String person : personURIs) {
|
||||||
String profileUrl = UrlBuilder.getIndividualProfileUrl(person, vreq);
|
String profileUrl = UrlBuilder.getIndividualProfileUrl(person, vreq);
|
||||||
|
|
||||||
if (!StringUtils.isEmpty(profileUrl)) {
|
if (!StringUtils.isEmpty(profileUrl)) {
|
||||||
try {
|
try {
|
||||||
out.println(" <url>");
|
out.println(" <url>");
|
||||||
|
@ -83,12 +101,10 @@ public class SiteMapServlet extends VitroHttpServlet {
|
||||||
out.println(" <changefreq>weekly</changefreq>");
|
out.println(" <changefreq>weekly</changefreq>");
|
||||||
out.println(" </url>");
|
out.println(" </url>");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
log.error(e, e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
|
||||||
} catch (RDFServiceException rse) {
|
|
||||||
}
|
|
||||||
|
|
||||||
out.println("</urlset>");
|
out.println("</urlset>");
|
||||||
}
|
}
|
||||||
|
@ -104,7 +120,8 @@ public class SiteMapServlet extends VitroHttpServlet {
|
||||||
if ("http".equalsIgnoreCase(scheme) || "https".equalsIgnoreCase(scheme)) {
|
if ("http".equalsIgnoreCase(scheme) || "https".equalsIgnoreCase(scheme)) {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
builder.append(scheme).append("://").append(serverName);
|
builder.append(scheme).append("://").append(serverName);
|
||||||
if (("http".equalsIgnoreCase(scheme) && serverPort != 80) || ("https".equalsIgnoreCase(scheme) && serverPort != 443) ) {
|
if (("http".equalsIgnoreCase(scheme) && serverPort != 80)
|
||||||
|
|| ("https".equalsIgnoreCase(scheme) && serverPort != 443) ) {
|
||||||
builder.append(":").append(serverPort);
|
builder.append(":").append(serverPort);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,12 @@ import edu.cornell.mannlib.vitro.webapp.i18n.VitroResourceBundle;
|
||||||
import javax.servlet.ServletContextEvent;
|
import javax.servlet.ServletContextEvent;
|
||||||
import javax.servlet.ServletContextListener;
|
import javax.servlet.ServletContextListener;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configures VIVO to look for i18n properties files prefixed with 'vivo_'.
|
||||||
|
* This listener must be run before any other code that uses resource bundles.
|
||||||
|
* As this listener does not depend on any others, it should be run at or near
|
||||||
|
* the top of the list in startup_listeners.txt.
|
||||||
|
*/
|
||||||
public class i18nSetup implements ServletContextListener {
|
public class i18nSetup implements ServletContextListener {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
36
docker-compose.yml
Normal file
36
docker-compose.yml
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
version: '3.2'
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
solr:
|
||||||
|
image: vivoweb/vivo-solr:latest
|
||||||
|
environment:
|
||||||
|
- RESET_CORE=${RESET_CORE}
|
||||||
|
- VERBOSE=${VERBOSE}
|
||||||
|
ports:
|
||||||
|
- 8983:8983
|
||||||
|
networks:
|
||||||
|
- vivo
|
||||||
|
|
||||||
|
tomcat:
|
||||||
|
container_name: vivo
|
||||||
|
hostname: vivo
|
||||||
|
build:
|
||||||
|
context: ./
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
args:
|
||||||
|
- VIVO_DIR=/usr/local/vivo/home
|
||||||
|
- TDB_FILE_MODE=direct
|
||||||
|
- SOLR_URL=http://solr:8983/solr/vivocore
|
||||||
|
environment:
|
||||||
|
- RESET_HOME=${RESET_HOME}
|
||||||
|
- VERBOSE=${VERBOSE}
|
||||||
|
ports:
|
||||||
|
- 8080:8080
|
||||||
|
volumes:
|
||||||
|
- ${LOCAL_VIVO_HOME}:/usr/local/vivo/home
|
||||||
|
networks:
|
||||||
|
- vivo
|
||||||
|
|
||||||
|
networks:
|
||||||
|
vivo:
|
|
@ -1,19 +1,16 @@
|
||||||
<project
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-home</artifactId>
|
<artifactId>vivo-home</artifactId>
|
||||||
<version>1.11.2-SNAPSHOT</version>
|
<version>1.12.1-SNAPSHOT</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-project</artifactId>
|
<artifactId>vivo-project</artifactId>
|
||||||
<version>1.11.2-SNAPSHOT</version>
|
<version>1.12.1-SNAPSHOT</version>
|
||||||
<relativePath>..</relativePath>
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -82,10 +82,10 @@
|
||||||
# ----------------------------
|
# ----------------------------
|
||||||
#
|
#
|
||||||
# Content triples source module: holds data contents
|
# Content triples source module: holds data contents
|
||||||
# The SDB-based implementation is the default option. It reads its parameters
|
# The TDB-based implementation is the default option. It reads its parameters
|
||||||
# from the runtime.properties file, for backward compatibility.
|
# from the runtime.properties file, for backward compatibility.
|
||||||
#
|
#
|
||||||
# Other implementations are based on a local TDB instance, a "standard" SPARQL
|
# Other implementations are based on an SDB instance, a "standard" SPARQL
|
||||||
# endpoint, or a Virtuoso endpoint, with parameters as shown.
|
# endpoint, or a Virtuoso endpoint, with parameters as shown.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
# For more information on specific properties, see the configuration reference
|
# For more information on specific properties, see the configuration reference
|
||||||
# or installation options section of the technical documentation for the
|
# or installation options section of the technical documentation for the
|
||||||
# version of VIVO you are running:
|
# version of VIVO you are running:
|
||||||
# https://wiki.duraspace.org/display/VIVO/VIVO+Technical+Documentation
|
# https://wiki.lyrasis.org/display/VIVO/VIVO+Technical+Documentation
|
||||||
#
|
#
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -39,7 +39,6 @@ Vitro.defaultNamespace = http://vivo.mydomain.edu/individual/
|
||||||
#
|
#
|
||||||
rootUser.emailAddress = vivo_root@mydomain.edu
|
rootUser.emailAddress = vivo_root@mydomain.edu
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Argon2 password hashing parameters for time, memory and parallelism required to
|
# Argon2 password hashing parameters for time, memory and parallelism required to
|
||||||
# compute a hash.
|
# compute a hash.
|
||||||
|
@ -72,20 +71,23 @@ argon2.time = 1000
|
||||||
# Email parameters which VIVO can use to send mail. If these are left empty,
|
# Email parameters which VIVO can use to send mail. If these are left empty,
|
||||||
# the "Contact Us" form will be disabled and users will not be notified of
|
# the "Contact Us" form will be disabled and users will not be notified of
|
||||||
# changes to their accounts.
|
# changes to their accounts.
|
||||||
|
# Example:
|
||||||
|
# email.smtpHost = smtp.mydomain.edu
|
||||||
|
# email.replyTo = vivoAdmin@mydomain.edu
|
||||||
#
|
#
|
||||||
email.smtpHost = smtp.mydomain.edu
|
# email.smtpHost =
|
||||||
email.replyTo = vivoAdmin@mydomain.edu
|
# email.replyTo =
|
||||||
|
|
||||||
#
|
#
|
||||||
# URL of Solr context used in local VIVO search. This will usually consist of:
|
# URL of Solr context used in local VIVO search. This will usually consist of:
|
||||||
# scheme + server_name + port + vivo_webapp_name + "solr"
|
# scheme + server_name + port + "solr" + solr_core_name
|
||||||
# In the standard installation, the Solr context will be on the same server as VIVO,
|
# In a standard Solr installation, the Solr service will be available on port
|
||||||
# and in the same Tomcat instance. The path will be the VIVO webapp.name (specified
|
# 8983. The path will be /solr followed by the name used when adding a core
|
||||||
# in build.properties) + "solr"
|
# for VIVO.
|
||||||
# Example:
|
# Example:
|
||||||
# vitro.local.solr.url = http://localhost:8080/vivosolr
|
# vitro.local.solr.url = http://localhost:8983/solr/vivocore
|
||||||
#
|
#
|
||||||
vitro.local.solr.url = http://localhost:8080/vivosolr
|
vitro.local.solr.url = http://localhost:8983/solr/vivocore
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
@ -112,6 +114,22 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
|
||||||
#
|
#
|
||||||
#externalAuth.netIdHeaderName = remote_userID
|
#externalAuth.netIdHeaderName = remote_userID
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# OPTIMIZING LIST VIEW QUERIES
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#
|
||||||
|
# Include sections between <precise-subquery></precise-subquery>
|
||||||
|
# tags when executing 'list view' queries that retrieve data
|
||||||
|
# for property lists on profile pages.
|
||||||
|
#
|
||||||
|
# Including these optional sections does not change the query
|
||||||
|
# semantics, but may improve performance.
|
||||||
|
#
|
||||||
|
# Default is true if not set.
|
||||||
|
# (Prior to v1.12, default was true for SDB and false for TDB.)
|
||||||
|
#
|
||||||
|
# listview.usePreciseSubquery = true
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# TUNING THE DATABASE CONNECTION POOL
|
# TUNING THE DATABASE CONNECTION POOL
|
||||||
|
@ -130,7 +148,6 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
|
||||||
#
|
#
|
||||||
# VitroConnection.DataSource.pool.maxIdle = 10
|
# VitroConnection.DataSource.pool.maxIdle = 10
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# USING A DIFFERENT DATABASE
|
# USING A DIFFERENT DATABASE
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
@ -202,8 +219,8 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
|
||||||
|
|
||||||
#
|
#
|
||||||
# A list of supported languages or Locales that the user may choose to
|
# A list of supported languages or Locales that the user may choose to
|
||||||
# use instead of the one specified by the browser. Selection images must
|
# use instead of the one specified by the browser. The selected language(s)
|
||||||
# be available in the i18n/images directory of the theme. This affects
|
# must exist in the VIVO-languages repository. This affects
|
||||||
# RDF data retrieved from the model, if RDFService.languageFilter is true.
|
# RDF data retrieved from the model, if RDFService.languageFilter is true.
|
||||||
# This also affects the text of pages that have been modified to support
|
# This also affects the text of pages that have been modified to support
|
||||||
# multiple languages.
|
# multiple languages.
|
||||||
|
@ -217,20 +234,37 @@ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
|
||||||
# ORCID INTEGRATION
|
# ORCID INTEGRATION
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# The Client ID from your ORCID credentials
|
||||||
|
# When your application for credentials is accepted, you will receive a Client
|
||||||
|
# ID to be used in communications with the API. If you apply for sandbox
|
||||||
|
# credentials first, and then production credentials, you will likely receive
|
||||||
|
# two different Client IDs.
|
||||||
# orcid.clientId = 0000-0000-0000-000X
|
# orcid.clientId = 0000-0000-0000-000X
|
||||||
|
|
||||||
|
# The Client Secret from your ORCID credentials
|
||||||
|
# When your application for credentials is accepted, you will receive a Client
|
||||||
|
# Secret to be used in communications with the API. If you apply for sandbox
|
||||||
|
# credentials first, and then production credentials, you will likely receive
|
||||||
|
# two different Client Secrets.
|
||||||
# orcid.clientPassword = 00000000-0000-0000-0000-000000000000
|
# orcid.clientPassword = 00000000-0000-0000-0000-000000000000
|
||||||
|
|
||||||
#
|
# The base URL for your VIVO application, as seen from outside.
|
||||||
|
# VIVO will use this to construct a callback URL that the ORCID API can use to
|
||||||
|
# return control to VIVO. The actual callback URL will be the string you
|
||||||
|
# provide here with the suffix of /orcid/callback added at the end.
|
||||||
# The orcid.webappBaseUrl must end in a front slash (/)
|
# The orcid.webappBaseUrl must end in a front slash (/)
|
||||||
# if it includes a path past the domain and (if required) port.
|
# if it includes a path past the domain and (if required) port.
|
||||||
#
|
#
|
||||||
# orcid.webappBaseUrl = http://vivo.mydomain.edu/vivo/
|
# orcid.webappBaseUrl = http://vivo.mydomain.edu/vivo/
|
||||||
# orcid.externalIdCommonName = VIVO Cornell Identifier
|
# orcid.externalIdCommonName = VIVO Cornell Identifier
|
||||||
|
|
||||||
# 1.2, 2.0
|
# The version of ORCIDs API protocol that VIVO will expect. Currently, the
|
||||||
|
# only supported version is 2.0.
|
||||||
# orcid.apiVersion = 2.0
|
# orcid.apiVersion = 2.0
|
||||||
|
|
||||||
# release, sandbox
|
# The entry point for ORCID's public API.
|
||||||
|
# This changes, depending on whether you are using the sandbox API or the
|
||||||
|
# production API. Value is either release or sandbox.
|
||||||
# orcid.api = sandbox
|
# orcid.api = sandbox
|
||||||
|
|
||||||
# Specify the type of API access that you have - public or member
|
# Specify the type of API access that you have - public or member
|
||||||
|
@ -392,7 +426,15 @@ Vitro.reconcile.defaultTypeList = http://vivoweb.org/ontology/core#Role, core:Ro
|
||||||
# If you do not wish to use the claiming interface, set this property to nothing (empty)
|
# If you do not wish to use the claiming interface, set this property to nothing (empty)
|
||||||
createAndLink.providers = doi, pmid
|
createAndLink.providers = doi, pmid
|
||||||
|
|
||||||
# Triple pattern fragments is a very fast, very simple means for querying a triple store.
|
# Triple Pattern Fragments is a very fast, very simple means for querying a
|
||||||
# The triple pattern fragments API in VIVO puts little load on the server, providing a simple means for getting data from the triple store. The API has a web interface for manual use, can be used from the command line via curl, and can be used by programs.
|
# triple store. The Triple Pattern Fragments API in VIVO puts little load on
|
||||||
|
# the server, providing a simple means for getting data from the triple store.
|
||||||
|
# The API has a web interface for manual use, can be used from the command
|
||||||
|
# line via curl, and can be used by programs.
|
||||||
|
#
|
||||||
|
# VIVO's Triple Pattern Fragments API does not require authentication and
|
||||||
|
# makes the full RDF graph available regardless of display or publish levels
|
||||||
|
# set on particular properties. Enable Triple Pattern Fragments only if your
|
||||||
|
# VIVO does not contain restricted data that should not be shared with others.
|
||||||
#
|
#
|
||||||
# tpf.activeFlag = true
|
# tpf.activeFlag = true
|
||||||
|
|
|
@ -0,0 +1,167 @@
|
||||||
|
@prefix : <http://vitro.mannlib.cornell.edu/ns/vitro/ApplicationSetup#> .
|
||||||
|
@prefix searchIndex: <java:edu.cornell.mannlib.vitro.webapp.searchindex#> .
|
||||||
|
|
||||||
|
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
||||||
|
|
||||||
|
:vivodocumentModifier_excerptsInComplexPublications
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> ,
|
||||||
|
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
|
||||||
|
rdfs:label "Populate complex publications with excerpts" ;
|
||||||
|
:hasTargetField "ALLTEXT" ;
|
||||||
|
:hasSelectQuery """
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
SELECT DISTINCT ?value
|
||||||
|
WHERE {
|
||||||
|
?uri ts:hasTOC ?toc .
|
||||||
|
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?excerpt .
|
||||||
|
VALUES ?property { ts:works ts:bibliography ts:htmlExcerpt ts:keywords }
|
||||||
|
?excerpt ?property ?value .
|
||||||
|
}
|
||||||
|
""" .
|
||||||
|
|
||||||
|
:vivoUriFinder_excerptsInComplexPublications
|
||||||
|
a searchIndex:indexing.IndexingUriFinder ,
|
||||||
|
searchIndex:indexing.SelectQueryUriFinder ;
|
||||||
|
rdfs:label "When excerpts change" ;
|
||||||
|
:hasSelectQuery """
|
||||||
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
|
SELECT ?uri
|
||||||
|
WHERE {
|
||||||
|
?uri ts:hasTOC ?toc .
|
||||||
|
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?subject .
|
||||||
|
}
|
||||||
|
""" .
|
||||||
|
|
||||||
|
:vivoUriFinder_onRubricsAssign
|
||||||
|
a searchIndex:indexing.IndexingUriFinder ,
|
||||||
|
searchIndex:indexing.SelectQueryUriFinder ;
|
||||||
|
rdfs:label "When rubric was assigned" ;
|
||||||
|
:hasSelectQuery """
|
||||||
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
|
SELECT ?uri
|
||||||
|
WHERE {
|
||||||
|
?subject a ts:textExcerpt .
|
||||||
|
VALUES ?uri { ?subject }
|
||||||
|
}
|
||||||
|
""" .
|
||||||
|
|
||||||
|
:vivodocumentModifier_PopulateTextWithHTMLContentsOfExcerpts
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> ,
|
||||||
|
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
|
||||||
|
rdfs:label "Html text to text field" ;
|
||||||
|
:hasTargetField "text" ;
|
||||||
|
:hasSelectQuery """
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
SELECT DISTINCT ?htmlExcerpt
|
||||||
|
WHERE {
|
||||||
|
{
|
||||||
|
?uri rdf:type ts:textExcerpt .
|
||||||
|
?uri ts:htmlExcerpt ?htmlExcerpt .
|
||||||
|
}
|
||||||
|
UNION
|
||||||
|
{
|
||||||
|
?uri rdf:type ts:complexPublication .
|
||||||
|
?uri ts:hasTOC ?toc .
|
||||||
|
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?excerpt .
|
||||||
|
?excerpt ts:htmlExcerpt ?htmlExcerpt .
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""" .
|
||||||
|
|
||||||
|
:vivodocumentModifier_rubrics
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> ,
|
||||||
|
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
|
||||||
|
rdfs:label "Add rubrics in rubrics field" ;
|
||||||
|
:hasTargetField "rubrics" ;
|
||||||
|
:hasSelectQuery """
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
PREFIX pr: <https://iph.ras.ru/relationships#>
|
||||||
|
SELECT DISTINCT ?rubric
|
||||||
|
WHERE {
|
||||||
|
{
|
||||||
|
?uri rdf:type ts:textExcerpt .
|
||||||
|
?uri pr:belongsTo ?assignedRubric .
|
||||||
|
?assignedRubric (pr:hasParent)* ?rubric .
|
||||||
|
}
|
||||||
|
UNION
|
||||||
|
{
|
||||||
|
?uri rdf:type ts:complexPublication .
|
||||||
|
?uri ts:hasTOC ?toc .
|
||||||
|
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?excerpt .
|
||||||
|
?excerpt pr:belongsTo ?assignedRubric .
|
||||||
|
?assignedRubric (pr:hasParent)* ?rubric .
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""" .
|
||||||
|
|
||||||
|
:vivodocumentModifier_titles
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> ,
|
||||||
|
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
|
||||||
|
rdfs:label "Add titles to special field" ;
|
||||||
|
:hasTargetField "titles" ;
|
||||||
|
:hasSelectQuery """
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
SELECT DISTINCT ?title
|
||||||
|
WHERE {
|
||||||
|
?uri rdfs:label ?title .
|
||||||
|
}
|
||||||
|
""" .
|
||||||
|
|
||||||
|
|
||||||
|
:vivodocumentModifier_keywordsElenph
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> ,
|
||||||
|
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
|
||||||
|
rdfs:label "Keywords for articles and excerpts" ;
|
||||||
|
:hasTargetField "keywords" ;
|
||||||
|
:hasSelectQuery """
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
SELECT DISTINCT ?keywords
|
||||||
|
WHERE {
|
||||||
|
{
|
||||||
|
?uri rdf:type ts:elenphArticle .
|
||||||
|
?uri ts:hasTOC ?toc .
|
||||||
|
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?elenphExcerpt .
|
||||||
|
?elenphExcerpt ts:keywords ?keywords .
|
||||||
|
}
|
||||||
|
UNION
|
||||||
|
{
|
||||||
|
?uri rdf:type ts:elenphExcerpt .
|
||||||
|
?uri ts:keywords ?keywords .
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""" .
|
||||||
|
|
||||||
|
:vivodocumentModifier_bibliographyElenph
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.SelectQueryDocumentModifier> ,
|
||||||
|
<java:edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding.DocumentModifier> ;
|
||||||
|
rdfs:label "Bibliography for articles and excerpts" ;
|
||||||
|
:hasTargetField "bibliography" ;
|
||||||
|
:hasSelectQuery """
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
SELECT DISTINCT ?bibliography
|
||||||
|
WHERE {
|
||||||
|
{
|
||||||
|
?uri rdf:type ts:elenphArticle .
|
||||||
|
?uri ts:hasTOC ?toc .
|
||||||
|
?toc (ts:hasTOCItem/ts:pointsTo)+/ts:hasText ?elenphExcerpt .
|
||||||
|
?elenphExcerpt ts:bibliography ?bibliography .
|
||||||
|
}
|
||||||
|
UNION
|
||||||
|
{
|
||||||
|
?uri rdf:type ts:elenphExcerpt .
|
||||||
|
?uri ts:bibliography ?bibliography .
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""" .
|
||||||
|
|
|
@ -0,0 +1,144 @@
|
||||||
|
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
||||||
|
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
||||||
|
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
||||||
|
@prefix vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> .
|
||||||
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
||||||
|
@prefix ts_: <https://litvinovg.pro/text_structures#> .
|
||||||
|
@prefix display: <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#> .
|
||||||
|
|
||||||
|
|
||||||
|
<https://litvinovg.pro/text_structures#compilation> display:hasDataGetter display:getCompilationExcerptsContentDataGetter .
|
||||||
|
|
||||||
|
<https://litvinovg.pro/text_structures#compilation> display:hasDataGetter display:getCompilationExcerptPathsDataGetter .
|
||||||
|
|
||||||
|
<https://litvinovg.pro/text_structures#compilation> display:hasDataGetter display:getCompilationWorksDataGetter .
|
||||||
|
|
||||||
|
<https://litvinovg.pro/text_structures#compilation> display:hasDataGetter display:getCompilationBibliographyDataGetter .
|
||||||
|
|
||||||
|
<https://litvinovg.pro/text_structures#compilation> display:hasDataGetter display:getCompilationAuthorsDataGetter .
|
||||||
|
|
||||||
|
<https://litvinovg.pro/text_structures#compilation> display:hasDataGetter display:getCompilationRubricsDataGetter .
|
||||||
|
|
||||||
|
display:getCompilationExcerptsContentDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "excerpts";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
SELECT ?elenphExcerpt ?htmlLabel ?htmlContent (COUNT (distinct ?excerptWorks) as ?worksCounter) (COUNT (distinct ?excerptBibliography) as ?bibliographyCounter)
|
||||||
|
WHERE {
|
||||||
|
?individualURI ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
|
||||||
|
?elenphExcerpt ts_:htmlExcerpt ?htmlContent .
|
||||||
|
?elenphExcerpt rdfs:label ?htmlLabel .
|
||||||
|
OPTIONAL{ ?elenphExcerpt ts_:works ?excerptWorks . }
|
||||||
|
OPTIONAL{ ?elenphExcerpt ts_:bibliography ?excerptBibliography . }
|
||||||
|
} GROUP BY ?elenphExcerpt ?htmlLabel ?htmlContent ORDER BY ?elenphExcerpt
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:getCompilationExcerptPathsDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "paths";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
SELECT (GROUP_CONCAT(substr(concat("000",str(?outline)),strlen(str(?outline))); SEPARATOR = ".") AS ?path ) (COUNT(?outline) AS ?level) ?tocElement ?elenphExcerpt
|
||||||
|
WHERE {
|
||||||
|
?individualURI ts_:hasTOC ?toc .
|
||||||
|
?toc ts_:hasTOCItem/(ts_:pointsTo/ts_:hasTOCItem)* ?tmpTOCItem .
|
||||||
|
?tmpTOCItem rdf:type ts_:TOCItem .
|
||||||
|
?tmpTOCItem ts_:pointsTo/(ts_:hasTOCItem/ts_:pointsTo)* ?tocElement .
|
||||||
|
?tmpTOCItem ts_:itemNumber ?outline .
|
||||||
|
OPTIONAL {
|
||||||
|
?tocElement ts_:hasText ?elenphExcerpt .
|
||||||
|
}
|
||||||
|
{
|
||||||
|
SELECT ?tocElement
|
||||||
|
WHERE {
|
||||||
|
?individualURI ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+ ?tocElement .
|
||||||
|
?tocElement rdf:type ts_:TOCLevel .
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} GROUP BY ?tocElement ?elenphExcerpt ORDER BY ?path
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:getCompilationBibliographyDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "bibliography";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
SELECT DISTINCT ?bibliography ?excerpt
|
||||||
|
WHERE {
|
||||||
|
?individualURI ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
|
||||||
|
?excerpt ts_:bibliography ?bibliography .
|
||||||
|
} ORDER BY ?bibliography
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:getCompilationWorksDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "works";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
SELECT DISTINCT ?works ?excerpt
|
||||||
|
WHERE {
|
||||||
|
?individualURI ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
|
||||||
|
?excerpt ts_:works ?works .
|
||||||
|
} ORDER BY ?works
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:getCompilationAuthorsDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "authors";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
SELECT DISTINCT ?authorInitials ?authorFamily ?authorGivenName ?orgName ?orgPostalCode ?orgAddress
|
||||||
|
WHERE {
|
||||||
|
?individualURI ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
|
||||||
|
?elenphExcerpt ts_:hasAuthor ?participant .
|
||||||
|
?participant ts_:participantFamily ?authorFamily .
|
||||||
|
?participant ts_:participantInitials ?authorInitials .
|
||||||
|
?participant ts_:participantGivenName ?authorGivenName .
|
||||||
|
OPTIONAL { ?participant ts_:affiliatedWith ?organization .
|
||||||
|
OPTIONAL { ?organization ts_:officialOrganizationName ?orgName } .
|
||||||
|
OPTIONAL { ?organization ts_:organizationPostalCode ?orgPostalCode } .
|
||||||
|
OPTIONAL { ?organization ts_:organizationAddress ?orgAddress } .
|
||||||
|
}
|
||||||
|
|
||||||
|
} ORDER BY ?authorFamily
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:getCompilationRubricsDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "rubrics";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
PREFIX pr: <https://iph.ras.ru/relationships#>
|
||||||
|
SELECT DISTINCT ?rubricID ?rubricName
|
||||||
|
WHERE {
|
||||||
|
?uri ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?artExcerpt .
|
||||||
|
?artExcerpt pr:belongsTo ?rubricID .
|
||||||
|
?rubricID rdfs:label ?rubricName .
|
||||||
|
} ORDER BY ?rubricID
|
||||||
|
""" .
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
@prefix display: <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#> .
|
||||||
|
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
||||||
|
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
||||||
|
|
||||||
|
<freemarker:queryBuilder.ftl> display:hasDataGetter display:customSearchFieldsDataGetter .
|
||||||
|
<freemarker:queryBuilder.ftl> display:hasDataGetter display:customSearchFiltersDataGetter .
|
||||||
|
|
||||||
|
display:customSearchFieldsDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter> ;
|
||||||
|
display:saveToVar "searchFields" ;
|
||||||
|
display:query """
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
PREFIX search: <https://litvinovg.pro/search_ontology#>
|
||||||
|
SELECT ?name ?field ?hasFilters
|
||||||
|
WHERE {
|
||||||
|
?searchField rdf:type search:searchField .
|
||||||
|
?searchField rdfs:label ?name .
|
||||||
|
?searchField search:indexField ?field .
|
||||||
|
BIND (exists { ?filters search:filterFiled ?searchField } AS ?hasFilters)
|
||||||
|
} ORDER BY ?name
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:customSearchFiltersDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter> ;
|
||||||
|
display:saveToVar "searchFilters" ;
|
||||||
|
display:query """
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
PREFIX search: <https://litvinovg.pro/search_ontology#>
|
||||||
|
SELECT ?name ?field ?id
|
||||||
|
WHERE {
|
||||||
|
?searchFilter rdf:type search:filter .
|
||||||
|
?searchFilter rdfs:label ?name .
|
||||||
|
?searchFilter search:id ?id .
|
||||||
|
?searchFilter search:filterFiled ?searchField .
|
||||||
|
?searchField search:indexField ?field .
|
||||||
|
BIND (replace ( ?name, "«", "" ) AS ?sortName)
|
||||||
|
|
||||||
|
} ORDER BY ?field ?sortName
|
||||||
|
""" .
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
@prefix display: <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#> .
|
||||||
|
<https://litvinovg.pro/text_structures#compilation> display:hasDeleteQuery """
|
||||||
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
|
DESCRIBE ?individualURI ?tocElement ?tocItem ?toc
|
||||||
|
WHERE {
|
||||||
|
OPTIONAL {
|
||||||
|
?individualURI ts:hasTOC ?toc .
|
||||||
|
?toc (ts:hasTOCItem/ts:pointsTo)* ?tocElement .
|
||||||
|
OPTIONAL {
|
||||||
|
?tocElement ts:hasTOCItem ?tocItem .
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""" .
|
||||||
|
<https://litvinovg.pro/text_structures#elenphArticle> display:hasDeleteQuery """
|
||||||
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
DESCRIBE ?individualURI ?tocElement ?tocItem ?toc ?excerpt ?author ?organization
|
||||||
|
WHERE {
|
||||||
|
?individualURI rdf:type ts:elenphArticle .
|
||||||
|
OPTIONAL {
|
||||||
|
?individualURI ts:hasTOC ?toc .
|
||||||
|
?toc (ts:hasTOCItem/ts:pointsTo)* ?tocElement .
|
||||||
|
OPTIONAL {
|
||||||
|
?tocElement ts:hasTOCItem ?tocItem .
|
||||||
|
}
|
||||||
|
OPTIONAL {
|
||||||
|
?tocElement ts:hasText ?excerpt .
|
||||||
|
OPTIONAL {
|
||||||
|
?excerpt ts:hasAuthor ?author .
|
||||||
|
OPTIONAL {
|
||||||
|
?author ts:affiliatedWith ?organization .
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""" .
|
||||||
|
|
||||||
|
<https://litvinovg.pro/text_structures#elenphExcerpt> display:hasDeleteQuery """
|
||||||
|
PREFIX ts: <https://litvinovg.pro/text_structures#>
|
||||||
|
DESCRIBE ?individualURI ?tocElement
|
||||||
|
WHERE
|
||||||
|
{
|
||||||
|
?tocElement ts:hasText ?individualURI .
|
||||||
|
FILTER NOT EXISTS {?tocElement ts:hasTOCItem ?tocItem }
|
||||||
|
}
|
||||||
|
""" .
|
|
@ -0,0 +1,144 @@
|
||||||
|
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
||||||
|
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
||||||
|
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
||||||
|
@prefix vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> .
|
||||||
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
||||||
|
@prefix ts_: <https://litvinovg.pro/text_structures#> .
|
||||||
|
@prefix display: <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#> .
|
||||||
|
|
||||||
|
|
||||||
|
<https://litvinovg.pro/text_structures#elenphArticle> display:hasDataGetter display:getArticleExcerptsContentDataGetter .
|
||||||
|
|
||||||
|
<https://litvinovg.pro/text_structures#elenphArticle> display:hasDataGetter display:getArticleExcerptPathsDataGetter .
|
||||||
|
|
||||||
|
<https://litvinovg.pro/text_structures#elenphArticle> display:hasDataGetter display:getArticleWorksDataGetter .
|
||||||
|
|
||||||
|
<https://litvinovg.pro/text_structures#elenphArticle> display:hasDataGetter display:getArticleBibliographyDataGetter .
|
||||||
|
|
||||||
|
<https://litvinovg.pro/text_structures#elenphArticle> display:hasDataGetter display:getArticleAuthorsDataGetter .
|
||||||
|
|
||||||
|
<https://litvinovg.pro/text_structures#elenphArticle> display:hasDataGetter display:getArticleRubricsDataGetter .
|
||||||
|
|
||||||
|
display:getArticleExcerptsContentDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "excerpts";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
SELECT ?elenphExcerpt ?htmlLabel ?htmlContent (COUNT (distinct ?excerptWorks) as ?worksCounter) (COUNT (distinct ?excerptBibliography) as ?bibliographyCounter)
|
||||||
|
WHERE {
|
||||||
|
?individualURI ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
|
||||||
|
?elenphExcerpt ts_:htmlExcerpt ?htmlContent .
|
||||||
|
?elenphExcerpt rdfs:label ?htmlLabel .
|
||||||
|
OPTIONAL{ ?elenphExcerpt ts_:works ?excerptWorks . }
|
||||||
|
OPTIONAL{ ?elenphExcerpt ts_:bibliography ?excerptBibliography . }
|
||||||
|
} GROUP BY ?elenphExcerpt ?htmlLabel ?htmlContent ORDER BY ?elenphExcerpt
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:getArticleExcerptPathsDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "paths";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
SELECT (GROUP_CONCAT(substr(concat("000",str(?outline)),strlen(str(?outline))); SEPARATOR = ".") AS ?path ) (COUNT(?outline) AS ?level) ?tocElement ?elenphExcerpt
|
||||||
|
WHERE {
|
||||||
|
?individualURI ts_:hasTOC ?toc .
|
||||||
|
?toc ts_:hasTOCItem/(ts_:pointsTo/ts_:hasTOCItem)* ?tmpTOCItem .
|
||||||
|
?tmpTOCItem rdf:type ts_:TOCItem .
|
||||||
|
?tmpTOCItem ts_:pointsTo/(ts_:hasTOCItem/ts_:pointsTo)* ?tocElement .
|
||||||
|
?tmpTOCItem ts_:itemNumber ?outline .
|
||||||
|
OPTIONAL {
|
||||||
|
?tocElement ts_:hasText ?elenphExcerpt .
|
||||||
|
}
|
||||||
|
{
|
||||||
|
SELECT ?elenphArticle ?tocElement
|
||||||
|
WHERE {
|
||||||
|
?individualURI ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+ ?tocElement .
|
||||||
|
?tocElement rdf:type ts_:TOCLevel .
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} GROUP BY ?tocElement ?elenphExcerpt ORDER BY ?path
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:getArticleBibliographyDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "bibliography";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
SELECT DISTINCT ?bibliography ?excerpt
|
||||||
|
WHERE {
|
||||||
|
?individualURI ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
|
||||||
|
?excerpt ts_:bibliography ?bibliography .
|
||||||
|
} ORDER BY ?bibliography
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:getArticleWorksDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "works";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
SELECT DISTINCT ?works ?excerpt
|
||||||
|
WHERE {
|
||||||
|
?individualURI ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
|
||||||
|
?excerpt ts_:works ?works .
|
||||||
|
} ORDER BY ?works
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:getArticleAuthorsDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "authors";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
SELECT DISTINCT ?authorInitials ?authorFamily ?authorGivenName ?orgName ?orgPostalCode ?orgAddress
|
||||||
|
WHERE {
|
||||||
|
?individualURI ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?elenphExcerpt .
|
||||||
|
?elenphExcerpt ts_:hasAuthor ?participant .
|
||||||
|
?participant ts_:participantFamily ?authorFamily .
|
||||||
|
?participant ts_:participantInitials ?authorInitials .
|
||||||
|
?participant ts_:participantGivenName ?authorGivenName .
|
||||||
|
OPTIONAL { ?participant ts_:affiliatedWith ?organization .
|
||||||
|
OPTIONAL { ?organization ts_:officialOrganizationName ?orgName } .
|
||||||
|
OPTIONAL { ?organization ts_:organizationPostalCode ?orgPostalCode } .
|
||||||
|
OPTIONAL { ?organization ts_:organizationAddress ?orgAddress } .
|
||||||
|
}
|
||||||
|
|
||||||
|
} ORDER BY ?authorFamily
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:getArticleRubricsDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "rubrics";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
PREFIX pr: <https://iph.ras.ru/relationships#>
|
||||||
|
SELECT DISTINCT ?rubricID ?rubricName
|
||||||
|
WHERE {
|
||||||
|
?uri ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?artExcerpt .
|
||||||
|
?artExcerpt pr:belongsTo ?rubricID .
|
||||||
|
?rubricID rdfs:label ?rubricName .
|
||||||
|
} ORDER BY ?rubricID
|
||||||
|
""" .
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
||||||
|
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
||||||
|
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
||||||
|
@prefix vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> .
|
||||||
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
||||||
|
@prefix ts_: <https://litvinovg.pro/text_structures#> .
|
||||||
|
@prefix display: <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#> .
|
||||||
|
|
||||||
|
|
||||||
|
<https://litvinovg.pro/text_structures#elenphExcerpt> display:hasDataGetter display:getExcerptAssignedArticlesDataGetter .
|
||||||
|
<https://litvinovg.pro/text_structures#elenphExcerpt> display:hasDataGetter display:getExcerptAuthorsDataGetter .
|
||||||
|
|
||||||
|
|
||||||
|
display:getExcerptAssignedArticlesDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "articles";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
SELECT DISTINCT ?articleName ?articleUri
|
||||||
|
WHERE {
|
||||||
|
?articleUri rdf:type ts_:elenphArticle .
|
||||||
|
?articleUri ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?individualURI .
|
||||||
|
?articleUri rdfs:label ?articleName .
|
||||||
|
} ORDER BY ?articleName
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:getExcerptAuthorsDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "authors";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
SELECT DISTINCT ?authorInitials ?authorFamily ?authorGivenName ?orgName ?orgPostalCode ?orgAddress
|
||||||
|
WHERE {
|
||||||
|
?individualURI ts_:hasAuthor ?participant .
|
||||||
|
?participant ts_:participantFamily ?authorFamily .
|
||||||
|
?participant ts_:participantInitials ?authorInitials .
|
||||||
|
?participant ts_:participantGivenName ?authorGivenName .
|
||||||
|
OPTIONAL { ?participant ts_:affiliatedWith ?organization .
|
||||||
|
OPTIONAL { ?organization ts_:officialOrganizationName ?orgName } .
|
||||||
|
OPTIONAL { ?organization ts_:organizationPostalCode ?orgPostalCode } .
|
||||||
|
OPTIONAL { ?organization ts_:organizationAddress ?orgAddress } .
|
||||||
|
}
|
||||||
|
|
||||||
|
} ORDER BY ?authorFamily
|
||||||
|
""" .
|
|
@ -0,0 +1,11 @@
|
||||||
|
@prefix vitroDisplay: <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#> .
|
||||||
|
|
||||||
|
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/search_ontology#filter> .
|
||||||
|
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/search_ontology#statement> .
|
||||||
|
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/search_ontology#searchField> .
|
||||||
|
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/search_ontology#sort> .
|
||||||
|
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/text_structures#TOC> .
|
||||||
|
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/text_structures#TOCLevel> .
|
||||||
|
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/text_structures#TOCItem> .
|
||||||
|
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/text_structures#publicationParticipant> .
|
||||||
|
vitroDisplay:SearchIndex vitroDisplay:excludeClass <https://litvinovg.pro/text_structures#organization> .
|
|
@ -23,7 +23,8 @@ display:academicDeptsDataGetter
|
||||||
WHERE
|
WHERE
|
||||||
{
|
{
|
||||||
?theURI a vivo:AcademicDepartment .
|
?theURI a vivo:AcademicDepartment .
|
||||||
?theURI rdfs:label ?label
|
?theURI rdfs:label ?label .
|
||||||
|
FILTER (lang(?label) = '?country' ) .
|
||||||
}
|
}
|
||||||
|
|
||||||
""" .
|
""" .
|
||||||
|
|
|
@ -0,0 +1,115 @@
|
||||||
|
@prefix owl: <http://www.w3.org/2002/07/owl#> .
|
||||||
|
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
||||||
|
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
||||||
|
@prefix vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> .
|
||||||
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
||||||
|
@prefix ts_: <https://litvinovg.pro/text_structures#> .
|
||||||
|
@prefix display: <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#> .
|
||||||
|
|
||||||
|
|
||||||
|
<https://iph.ras.ru/relationships#rubric> display:hasDataGetter display:getArticlesWithRubricDataGetter .
|
||||||
|
|
||||||
|
<https://iph.ras.ru/relationships#rubric> display:hasDataGetter display:getArticlesWithChildRubricDataGetter .
|
||||||
|
|
||||||
|
<https://iph.ras.ru/relationships#rubric> display:hasDataGetter display:getChildRubricsDataGetter .
|
||||||
|
|
||||||
|
<https://iph.ras.ru/relationships#rubric> display:hasDataGetter display:getExcerptsWithRubricDataGetter .
|
||||||
|
|
||||||
|
<https://iph.ras.ru/relationships#rubric> display:hasDataGetter display:getExcerptsWithRubricsChildsDataGetter .
|
||||||
|
|
||||||
|
display:getArticlesWithChildRubricDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "childArticles";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX pr: <https://iph.ras.ru/relationships#>
|
||||||
|
SELECT DISTINCT ?childArticleID ?childArticleName
|
||||||
|
WHERE {
|
||||||
|
?rubric (pr:hasParent)+ ?individualURI .
|
||||||
|
?excerpt pr:belongsTo ?rubric .
|
||||||
|
?excerpt rdf:type ts_:elenphExcerpt .
|
||||||
|
?childArticleID ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
|
||||||
|
?childArticleID rdfs:label ?childArticleName .
|
||||||
|
?childArticleID rdf:type ts_:elenphArticle .
|
||||||
|
} ORDER BY ?childArticleName
|
||||||
|
""" .
|
||||||
|
|
||||||
|
|
||||||
|
display:getArticlesWithRubricDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "articles";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX pr: <https://iph.ras.ru/relationships#>
|
||||||
|
SELECT DISTINCT ?articleID ?articleName
|
||||||
|
WHERE {
|
||||||
|
?excerpt pr:belongsTo ?individualURI .
|
||||||
|
?excerpt rdf:type ts_:elenphExcerpt .
|
||||||
|
?articleID ts_:hasTOC ?toc .
|
||||||
|
?toc (ts_:hasTOCItem/ts_:pointsTo)+/ts_:hasText ?excerpt .
|
||||||
|
?articleID rdfs:label ?articleName .
|
||||||
|
?articleID rdf:type ts_:elenphArticle .
|
||||||
|
} ORDER BY ?articleName
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:getChildRubricsDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "childRubrics";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX pr: <https://iph.ras.ru/relationships#>
|
||||||
|
SELECT DISTINCT ?rubricID ?rubricName
|
||||||
|
WHERE {
|
||||||
|
?rubricID pr:hasParent ?individualURI .
|
||||||
|
?rubricID pr:rubricOrder ?order .
|
||||||
|
?rubricID rdfs:label ?rubricName .
|
||||||
|
?rubricID rdf:type pr:rubric .
|
||||||
|
} ORDER BY ?order
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:getExcerptsWithRubricsChildsDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "childExcerpts";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX pr: <https://iph.ras.ru/relationships#>
|
||||||
|
SELECT DISTINCT ?childExcerptID ?childExcerptName
|
||||||
|
WHERE {
|
||||||
|
?tmpChildRubrics (pr:hasParent)+ ?individualURI .
|
||||||
|
?childExcerptID pr:belongsTo ?tmpChildRubrics .
|
||||||
|
?childExcerptID rdfs:label ?childExcerptName .
|
||||||
|
?childExcerptID rdf:type ts_:elenphExcerpt .
|
||||||
|
} ORDER BY ?childExcerptName
|
||||||
|
""" .
|
||||||
|
|
||||||
|
display:getExcerptsWithRubricDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "excerpts";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
PREFIX pr: <https://iph.ras.ru/relationships#>
|
||||||
|
SELECT DISTINCT ?excerptID ?excerptName
|
||||||
|
WHERE {
|
||||||
|
?excerptID pr:belongsTo ?individualURI .
|
||||||
|
?excerptID rdfs:label ?excerptName .
|
||||||
|
?excerptID rdf:type ts_:elenphExcerpt .
|
||||||
|
} ORDER BY ?excerptName
|
||||||
|
""" .
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
searchIndex:documentBuilding.DocumentModifier ,
|
searchIndex:documentBuilding.DocumentModifier ,
|
||||||
searchIndex:extensions.LabelsAcrossContextNodes ;
|
searchIndex:extensions.LabelsAcrossContextNodes ;
|
||||||
rdfs:label "Labels across relatedBy/relates" ;
|
rdfs:label "Labels across relatedBy/relates" ;
|
||||||
:hasTypeRestriction "http://vivoweb.org/ontology/core#Relationship" ;
|
:appliesToContextNodeType "http://vivoweb.org/ontology/core#Relationship" ;
|
||||||
:hasIncomingProperty "http://vivoweb.org/ontology/core#relatedBy" ;
|
:hasIncomingProperty "http://vivoweb.org/ontology/core#relatedBy" ;
|
||||||
:hasOutgoingProperty "http://vivoweb.org/ontology/core#relates" .
|
:hasOutgoingProperty "http://vivoweb.org/ontology/core#relates" .
|
||||||
|
|
||||||
|
@ -117,6 +117,22 @@
|
||||||
}
|
}
|
||||||
""" .
|
""" .
|
||||||
|
|
||||||
|
# URI finder that will find the relevant person to update when the
|
||||||
|
# property linking to the email or preferred title resource is removed
|
||||||
|
:vivoUriFinder_VCard_2
|
||||||
|
a searchIndex:indexing.IndexingUriFinder ,
|
||||||
|
searchIndex:indexing.SelectQueryUriFinder ;
|
||||||
|
rdfs:label "Preferred title / email person URI finder #2" ;
|
||||||
|
:hasPredicateRestriction "http://www.w3.org/2006/vcard/ns#hasTitle" ;
|
||||||
|
:hasPredicateRestriction "http://www.w3.org/2006/vcard/ns#hasEmail" ;
|
||||||
|
:hasSelectQuery """
|
||||||
|
PREFIX obo: <http://purl.obolibrary.org/obo/>
|
||||||
|
SELECT ?uri
|
||||||
|
WHERE {
|
||||||
|
?uri obo:ARG_2000028 ?subject .
|
||||||
|
}
|
||||||
|
""" .
|
||||||
|
|
||||||
:vivodocumentModifier_PreferredTitle
|
:vivodocumentModifier_PreferredTitle
|
||||||
a searchIndex:documentBuilding.SelectQueryDocumentModifier ,
|
a searchIndex:documentBuilding.SelectQueryDocumentModifier ,
|
||||||
searchIndex:documentBuilding.DocumentModifier ;
|
searchIndex:documentBuilding.DocumentModifier ;
|
||||||
|
|
|
@ -1,24 +0,0 @@
|
||||||
# $This file is distributed under the terms of the license in LICENSE$
|
|
||||||
|
|
||||||
@prefix about: <http://vitro.mannlib.cornell.edu/ns/default/about#> .
|
|
||||||
|
|
||||||
about:ABOUTDG
|
|
||||||
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.FixedHTMLDataGetter> ;
|
|
||||||
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#htmlValue>
|
|
||||||
"""<h2>About VIVO</h2>
|
|
||||||
<div class=\"pageGroupBody\" id=\"aboutText\"><p>The VIVO application enables the discovery of researchers across institutions. Participants in the network include institutions with local installations of VIVO or those with research discovery and profiling applications that can provide semantic web-compliant data. The information accessible through VIVO's search and browse capability will therefore reside and be controlled locally, within institutional VIVOs or other semantic web-compliant applications.</p>
|
|
||||||
|
|
||||||
<p>VIVO is an open source semantic web application originally developed and implemented at Cornell. When installed and populated with content at an institution, it enables the discovery of research and scholarship across disciplines at that institution. VIVO supports browsing and a search function which returns faceted results for rapid retrieval of desired information. Content in any local VIVO installation may be maintained manually or brought into the database in automated ways from local systems of record, such as human resources, scholarships, grants, course, and faculty activity databases.</p>
|
|
||||||
|
|
||||||
<p>See more information on the <a href=\"http://vivoweb.org\">VIVO Project</a>.</p></div>
|
|
||||||
"""@en ;
|
|
||||||
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#saveToVar>
|
|
||||||
"aboutPage" .
|
|
||||||
about:ABOUTPAGE
|
|
||||||
a <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#Page> ;
|
|
||||||
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#hasDataGetter>
|
|
||||||
about:ABOUTDG ;
|
|
||||||
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#title>
|
|
||||||
"About Page" ;
|
|
||||||
<http://vitro.mannlib.cornell.edu/ontologies/display/1.1#urlMapping>
|
|
||||||
"/about" .
|
|
|
@ -14,7 +14,6 @@
|
||||||
|
|
||||||
display:DefaultMenu
|
display:DefaultMenu
|
||||||
a display:MainMenu ;
|
a display:MainMenu ;
|
||||||
rdfs:label "Default Menu" ;
|
|
||||||
display:hasElement display:EventsMenuItem ;
|
display:hasElement display:EventsMenuItem ;
|
||||||
display:hasElement display:HomeMenuItem ;
|
display:hasElement display:HomeMenuItem ;
|
||||||
display:hasElement display:OrganizationsMenuItem ;
|
display:hasElement display:OrganizationsMenuItem ;
|
||||||
|
@ -27,43 +26,36 @@ display:DefaultMenu
|
||||||
display:HomeMenuItem
|
display:HomeMenuItem
|
||||||
a display:NavigationElement ;
|
a display:NavigationElement ;
|
||||||
display:menuPosition 1;
|
display:menuPosition 1;
|
||||||
display:linkText "Home";
|
|
||||||
display:toPage display:Home .
|
display:toPage display:Home .
|
||||||
|
|
||||||
display:PeopleMenuItem
|
display:PeopleMenuItem
|
||||||
a display:NavigationElement ;
|
a display:NavigationElement ;
|
||||||
display:menuPosition 2;
|
display:menuPosition 2;
|
||||||
display:linkText "People";
|
|
||||||
display:toPage display:People .
|
display:toPage display:People .
|
||||||
|
|
||||||
display:OrganizationsMenuItem
|
display:OrganizationsMenuItem
|
||||||
a display:NavigationElement ;
|
a display:NavigationElement ;
|
||||||
display:menuPosition 3;
|
display:menuPosition 3;
|
||||||
display:linkText "Organizations";
|
|
||||||
display:toPage display:Organizations .
|
display:toPage display:Organizations .
|
||||||
|
|
||||||
display:ResearchMenuItem
|
display:ResearchMenuItem
|
||||||
a display:NavigationElement ;
|
a display:NavigationElement ;
|
||||||
display:menuPosition 4;
|
display:menuPosition 4;
|
||||||
display:linkText "Research";
|
|
||||||
display:toPage display:Research .
|
display:toPage display:Research .
|
||||||
|
|
||||||
display:EventsMenuItem
|
display:EventsMenuItem
|
||||||
a display:NavigationElement ;
|
a display:NavigationElement ;
|
||||||
display:menuPosition 5;
|
display:menuPosition 5;
|
||||||
display:linkText "Events";
|
|
||||||
display:toPage display:Events .
|
display:toPage display:Events .
|
||||||
|
|
||||||
display:CapabilityMapMenuItem
|
display:CapabilityMapMenuItem
|
||||||
a display:NavigationElement ;
|
a display:NavigationElement ;
|
||||||
display:menuPosition 6;
|
display:menuPosition 6;
|
||||||
display:linkText "Capability Map";
|
|
||||||
display:toPage display:CapabilityMap .
|
display:toPage display:CapabilityMap .
|
||||||
|
|
||||||
display:Home
|
display:Home
|
||||||
a display:HomePage ;
|
a display:HomePage ;
|
||||||
a display:Page ;
|
a display:Page ;
|
||||||
display:title "Home" ;
|
|
||||||
display:urlMapping "/" ;
|
display:urlMapping "/" ;
|
||||||
display:hasDataGetter display:homeDataGetter;
|
display:hasDataGetter display:homeDataGetter;
|
||||||
display:cannotDeletePage "true" .
|
display:cannotDeletePage "true" .
|
||||||
|
@ -72,7 +64,6 @@ display:Events
|
||||||
a display:Page ;
|
a display:Page ;
|
||||||
a display:ClassGroupPage;
|
a display:ClassGroupPage;
|
||||||
display:forClassGroup vivoweb:vitroClassGroupevents ;
|
display:forClassGroup vivoweb:vitroClassGroupevents ;
|
||||||
display:title "Events" ;
|
|
||||||
display:urlMapping "/events" ;
|
display:urlMapping "/events" ;
|
||||||
display:hasDataGetter display:eventsDataGetter .
|
display:hasDataGetter display:eventsDataGetter .
|
||||||
|
|
||||||
|
@ -80,7 +71,6 @@ display:Organizations
|
||||||
a display:Page ;
|
a display:Page ;
|
||||||
a display:ClassGroupPage;
|
a display:ClassGroupPage;
|
||||||
display:forClassGroup vivoweb:vitroClassGrouporganizations ;
|
display:forClassGroup vivoweb:vitroClassGrouporganizations ;
|
||||||
display:title "Organizations" ;
|
|
||||||
display:urlMapping "/organizations";
|
display:urlMapping "/organizations";
|
||||||
display:hasDataGetter display:organizationsDataGetter .
|
display:hasDataGetter display:organizationsDataGetter .
|
||||||
|
|
||||||
|
@ -88,7 +78,6 @@ display:People
|
||||||
a display:Page ;
|
a display:Page ;
|
||||||
a display:ClassGroupPage;
|
a display:ClassGroupPage;
|
||||||
display:forClassGroup vivoweb:vitroClassGrouppeople ;
|
display:forClassGroup vivoweb:vitroClassGrouppeople ;
|
||||||
display:title "People" ;
|
|
||||||
display:urlMapping "/people" ;
|
display:urlMapping "/people" ;
|
||||||
display:hasDataGetter display:peopleDataGetter .
|
display:hasDataGetter display:peopleDataGetter .
|
||||||
|
|
||||||
|
@ -96,13 +85,11 @@ display:Research
|
||||||
a display:Page ;
|
a display:Page ;
|
||||||
a display:ClassGroupPage;
|
a display:ClassGroupPage;
|
||||||
display:forClassGroup vivoweb:vitroClassGrouppublications ;
|
display:forClassGroup vivoweb:vitroClassGrouppublications ;
|
||||||
display:title "Research" ;
|
|
||||||
display:urlMapping "/research" ;
|
display:urlMapping "/research" ;
|
||||||
display:hasDataGetter display:researchDataGetter .
|
display:hasDataGetter display:researchDataGetter .
|
||||||
|
|
||||||
display:CapabilityMap
|
display:CapabilityMap
|
||||||
a display:Page ;
|
a display:Page ;
|
||||||
display:title "Capability Map" ;
|
|
||||||
display:urlMapping "/vis/capabilitymap" ;
|
display:urlMapping "/vis/capabilitymap" ;
|
||||||
display:hasDataGetter display:capabilityMapDataGetter .
|
display:hasDataGetter display:capabilityMapDataGetter .
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,110 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?><rdf:RDF
|
||||||
|
xmlns:ns="http://www.w3.org/2003/06/sw-vocab-status/ns#"
|
||||||
|
xmlns:scires="http://vivoweb.org/ontology/scientific-research#"
|
||||||
|
xmlns:ocresst="http://purl.org/net/OCRe/statistics.owl#"
|
||||||
|
xmlns:ocresd="http://purl.org/net/OCRe/study_design.owl#"
|
||||||
|
xmlns:dcterms="http://purl.org/dc/terms/"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:obo="http://purl.obolibrary.org/obo/"
|
||||||
|
xmlns:geo="http://aims.fao.org/aos/geopolitical.owl#"
|
||||||
|
xmlns:c4o="http://purl.org/spar/c4o/"
|
||||||
|
xmlns:event="http://purl.org/NET/c4dm/event.owl#"
|
||||||
|
xmlns:ro="http://purl.obolibrary.org/obo/ro.owl#"
|
||||||
|
xmlns:skos="http://www.w3.org/2004/02/skos/core#"
|
||||||
|
xmlns:skos2="http://www.w3.org/2008/05/skos#"
|
||||||
|
xmlns:ts="https://litvinovg.pro/text_structures#"
|
||||||
|
xmlns:vann="http://purl.org/vocab/vann/"
|
||||||
|
xmlns:vivo="http://vivoweb.org/ontology/core#"
|
||||||
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
|
||||||
|
xmlns:vitro-public="http://vitro.mannlib.cornell.edu/ns/vitro/public#"
|
||||||
|
xmlns:vitro="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cito="http://purl.org/spar/cito/"
|
||||||
|
xmlns:swo="http://www.ebi.ac.uk/efo/swo/"
|
||||||
|
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
|
||||||
|
xmlns:ocresp="http://purl.org/net/OCRe/study_protocol.owl#"
|
||||||
|
xmlns:pr="https://iph.ras.ru/relationships#"
|
||||||
|
xmlns:ocrer="http://purl.org/net/OCRe/research.owl#"
|
||||||
|
xmlns:owl="http://www.w3.org/2002/07/owl#"
|
||||||
|
xmlns:vcard="http://www.w3.org/2006/vcard/ns#"
|
||||||
|
xmlns:bibo="http://purl.org/ontology/bibo/"
|
||||||
|
xmlns:fabio="http://purl.org/spar/fabio/"
|
||||||
|
xmlns:search="https://dideside.com/searchOntology#"
|
||||||
|
xmlns:foaf="http://xmlns.com/foaf/0.1/">
|
||||||
|
<owl:Ontology rdf:about="https://iph.ras.ru/relationships">
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>The ontology of philosophical relations</rdfs:label>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Philosophical ontology</rdfs:label>
|
||||||
|
<vitro:ontologyPrefixAnnot>pr</vitro:ontologyPrefixAnnot>
|
||||||
|
</owl:Ontology>
|
||||||
|
<owl:Class rdf:about="https://iph.ras.ru/relationships#rubric">
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>рубрика</rdfs:label>
|
||||||
|
<vitro:inClassGroup rdf:resource="http://vivo.mydomain.edu/individual/vitroClassGroupphilosophicalrubrics"/>
|
||||||
|
<vitro:inClassGroup rdf:resource="http://vivo.mydomain.edu/individual/vitroClassGrouprubric"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:customDisplayViewAnnot>rubric.ftl</vitro:customDisplayViewAnnot>
|
||||||
|
<obo:IAO_0000115>Рубрика</obo:IAO_0000115>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:ObjectProperty rdf:about="https://iph.ras.ru/relationships#relation">
|
||||||
|
<rdfs:label xml:lang="en-US">Relation</rdfs:label>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
|
||||||
|
>true</vitro:selectFromExistingAnnot>
|
||||||
|
<rdfs:range rdf:resource="https://iph.ras.ru/relationships#rubric"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#textExcerpt"/>
|
||||||
|
</owl:ObjectProperty>
|
||||||
|
<owl:ObjectProperty rdf:about="https://iph.ras.ru/relationships#hasParent">
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>has parent rubric</rdfs:label>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
|
||||||
|
>true</vitro:selectFromExistingAnnot>
|
||||||
|
<rdfs:range rdf:resource="https://iph.ras.ru/relationships#rubric"/>
|
||||||
|
<rdfs:domain rdf:resource="https://iph.ras.ru/relationships#rubric"/>
|
||||||
|
</owl:ObjectProperty>
|
||||||
|
<owl:ObjectProperty rdf:about="https://iph.ras.ru/relationships#belongsTo">
|
||||||
|
<vitro:customEntryFormAnnot>edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.AddRubricToELENPHArticleGenerator</vitro:customEntryFormAnnot>
|
||||||
|
<rdfs:range rdf:resource="https://iph.ras.ru/relationships#rubric"/>
|
||||||
|
<rdfs:label xml:lang="en-US">belongs to</rdfs:label>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
|
||||||
|
>true</vitro:selectFromExistingAnnot>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publication"/>
|
||||||
|
</owl:ObjectProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://iph.ras.ru/relationships#rubricOrder">
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>порядок рубрики</rdfs:label>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
|
||||||
|
<rdfs:domain rdf:resource="https://iph.ras.ru/relationships#rubric"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:SymmetricProperty rdf:about="https://iph.ras.ru/relationships#isInversionOf">
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>isInversionOf</rdfs:label>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:domain rdf:resource="https://iph.ras.ru/text_structures#textExcerpt"/>
|
||||||
|
<rdfs:range rdf:resource="https://iph.ras.ru/text_structures#textExcerpt"/>
|
||||||
|
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
|
||||||
|
>true</vitro:selectFromExistingAnnot>
|
||||||
|
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
|
||||||
|
>-1</vitro:displayLimitAnnot>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://iph.ras.ru/relationships#relation"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
|
||||||
|
</owl:SymmetricProperty>
|
||||||
|
</rdf:RDF>
|
118
home/src/main/resources/rdf/tbox/filegraph/searchOnotology.owl
Normal file
118
home/src/main/resources/rdf/tbox/filegraph/searchOnotology.owl
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?><rdf:RDF
|
||||||
|
xmlns:ns="http://www.w3.org/2003/06/sw-vocab-status/ns#"
|
||||||
|
xmlns:search="https://litvinovg.pro/search_ontology#"
|
||||||
|
xmlns:scires="http://vivoweb.org/ontology/scientific-research#"
|
||||||
|
xmlns:ocresst="http://purl.org/net/OCRe/statistics.owl#"
|
||||||
|
xmlns:ocresd="http://purl.org/net/OCRe/study_design.owl#"
|
||||||
|
xmlns:dcterms="http://purl.org/dc/terms/"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:obo="http://purl.obolibrary.org/obo/"
|
||||||
|
xmlns:geo="http://aims.fao.org/aos/geopolitical.owl#"
|
||||||
|
xmlns:c4o="http://purl.org/spar/c4o/"
|
||||||
|
xmlns:event="http://purl.org/NET/c4dm/event.owl#"
|
||||||
|
xmlns:ro="http://purl.obolibrary.org/obo/ro.owl#"
|
||||||
|
xmlns:skos="http://www.w3.org/2004/02/skos/core#"
|
||||||
|
xmlns:skos2="http://www.w3.org/2008/05/skos#"
|
||||||
|
xmlns:ts="https://litvinovg.pro/text_structures#"
|
||||||
|
xmlns:vann="http://purl.org/vocab/vann/"
|
||||||
|
xmlns:vivo="http://vivoweb.org/ontology/core#"
|
||||||
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
|
||||||
|
xmlns:vitro-public="http://vitro.mannlib.cornell.edu/ns/vitro/public#"
|
||||||
|
xmlns:vitro="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cito="http://purl.org/spar/cito/"
|
||||||
|
xmlns:swo="http://www.ebi.ac.uk/efo/swo/"
|
||||||
|
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
|
||||||
|
xmlns:ocresp="http://purl.org/net/OCRe/study_protocol.owl#"
|
||||||
|
xmlns:pr="https://iph.ras.ru/relationships#"
|
||||||
|
xmlns:ocrer="http://purl.org/net/OCRe/research.owl#"
|
||||||
|
xmlns:owl="http://www.w3.org/2002/07/owl#"
|
||||||
|
xmlns:vcard="http://www.w3.org/2006/vcard/ns#"
|
||||||
|
xmlns:bibo="http://purl.org/ontology/bibo/"
|
||||||
|
xmlns:fabio="http://purl.org/spar/fabio/"
|
||||||
|
xmlns:foaf="http://xmlns.com/foaf/0.1/">
|
||||||
|
<owl:Ontology rdf:about="https://litvinovg.pro/search_ontology">
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Semantic search</rdfs:label>
|
||||||
|
<vitro:ontologyPrefixAnnot>search</vitro:ontologyPrefixAnnot>
|
||||||
|
</owl:Ontology>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/search_ontology#searchField">
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Field</rdfs:label>
|
||||||
|
<vitro:inClassGroup rdf:resource="http://vivo.mydomain.edu/individual/vitroClassGroupsearchstatements"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subClassOf>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/search_ontology#statement"/>
|
||||||
|
</rdfs:subClassOf>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/search_ontology#statement">
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Search statement</rdfs:label>
|
||||||
|
<vitro:inClassGroup rdf:resource="http://vivo.mydomain.edu/individual/vitroClassGroupsearchstatements"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/search_ontology#sort">
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Sort</rdfs:label>
|
||||||
|
<vitro:inClassGroup rdf:resource="http://vivo.mydomain.edu/individual/vitroClassGroupsearchstatements"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/search_ontology#statement"/>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/search_ontology#filter">
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Filter</rdfs:label>
|
||||||
|
<vitro:inClassGroup rdf:resource="http://vivo.mydomain.edu/individual/vitroClassGroupsearchstatements"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/search_ontology#statement"/>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:ObjectProperty rdf:about="https://litvinovg.pro/search_ontology#filterFiled">
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Filter field</rdfs:label>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
|
||||||
|
>true</vitro:selectFromExistingAnnot>
|
||||||
|
<rdfs:range rdf:resource="https://litvinovg.pro/search_ontology#searchField"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/search_ontology#filter"/>
|
||||||
|
</owl:ObjectProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/search_ontology#indexField">
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Index field</rdfs:label>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/search_ontology#searchField"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/search_ontology#id">
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Identifier</rdfs:label>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/search_ontology#filter"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/search_ontology#description">
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>description</rdfs:label>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/search_ontology#statement"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
</rdf:RDF>
|
525
home/src/main/resources/rdf/tbox/filegraph/text_structures.owl
Normal file
525
home/src/main/resources/rdf/tbox/filegraph/text_structures.owl
Normal file
|
@ -0,0 +1,525 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?><rdf:RDF
|
||||||
|
xmlns:ns="http://www.w3.org/2003/06/sw-vocab-status/ns#"
|
||||||
|
xmlns:search="https://litvinovg.pro/search_ontology#"
|
||||||
|
xmlns:scires="http://vivoweb.org/ontology/scientific-research#"
|
||||||
|
xmlns:ocresst="http://purl.org/net/OCRe/statistics.owl#"
|
||||||
|
xmlns:ocresd="http://purl.org/net/OCRe/study_design.owl#"
|
||||||
|
xmlns:dcterms="http://purl.org/dc/terms/"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:obo="http://purl.obolibrary.org/obo/"
|
||||||
|
xmlns:geo="http://aims.fao.org/aos/geopolitical.owl#"
|
||||||
|
xmlns:c4o="http://purl.org/spar/c4o/"
|
||||||
|
xmlns:event="http://purl.org/NET/c4dm/event.owl#"
|
||||||
|
xmlns:ro="http://purl.obolibrary.org/obo/ro.owl#"
|
||||||
|
xmlns:skos="http://www.w3.org/2004/02/skos/core#"
|
||||||
|
xmlns:skos2="http://www.w3.org/2008/05/skos#"
|
||||||
|
xmlns:ts="https://litvinovg.pro/text_structures#"
|
||||||
|
xmlns:vann="http://purl.org/vocab/vann/"
|
||||||
|
xmlns:vivo="http://vivoweb.org/ontology/core#"
|
||||||
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
|
||||||
|
xmlns:vitro-public="http://vitro.mannlib.cornell.edu/ns/vitro/public#"
|
||||||
|
xmlns:vitro="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:cito="http://purl.org/spar/cito/"
|
||||||
|
xmlns:swo="http://www.ebi.ac.uk/efo/swo/"
|
||||||
|
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
|
||||||
|
xmlns:ocresp="http://purl.org/net/OCRe/study_protocol.owl#"
|
||||||
|
xmlns:pr="https://iph.ras.ru/relationships#"
|
||||||
|
xmlns:ocrer="http://purl.org/net/OCRe/research.owl#"
|
||||||
|
xmlns:owl="http://www.w3.org/2002/07/owl#"
|
||||||
|
xmlns:vcard="http://www.w3.org/2006/vcard/ns#"
|
||||||
|
xmlns:bibo="http://purl.org/ontology/bibo/"
|
||||||
|
xmlns:fabio="http://purl.org/spar/fabio/"
|
||||||
|
xmlns:foaf="http://xmlns.com/foaf/0.1/">
|
||||||
|
<owl:Ontology rdf:about="https://litvinovg.pro/text_structures">
|
||||||
|
<rdfs:label xml:lang="ru-RU">Text structures Ontology</rdfs:label>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Text structures Ontology</rdfs:label>
|
||||||
|
<vitro:ontologyPrefixAnnot>ts</vitro:ontologyPrefixAnnot>
|
||||||
|
</owl:Ontology>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#TOC">
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:label xml:lang="en-US">Table of contents</rdfs:label>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Table of contents</rdfs:label>
|
||||||
|
<rdfs:subClassOf>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#TOCLevel"/>
|
||||||
|
</rdfs:subClassOf>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
|
||||||
|
>-1</vitro:displayRankAnnot>
|
||||||
|
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
|
||||||
|
>-1</vitro:displayRankAnnot>
|
||||||
|
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
|
||||||
|
>-1</vitro:displayLimitAnnot>
|
||||||
|
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
|
||||||
|
>-1</vitro:displayLimitAnnot>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#complexPublication">
|
||||||
|
<rdfs:label xml:lang="en-US">Complex Publication</rdfs:label>
|
||||||
|
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
|
||||||
|
>-1</vitro:displayLimitAnnot>
|
||||||
|
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
|
||||||
|
>-1</vitro:displayRankAnnot>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subClassOf>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#publication"/>
|
||||||
|
</rdfs:subClassOf>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#publication">
|
||||||
|
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
|
||||||
|
>-1</vitro:displayLimitAnnot>
|
||||||
|
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
|
||||||
|
>-1</vitro:displayLimitAnnot>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:label xml:lang="en-US">Publication</rdfs:label>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Publication</rdfs:label>
|
||||||
|
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
|
||||||
|
>-1</vitro:displayRankAnnot>
|
||||||
|
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
|
||||||
|
>-1</vitro:displayRankAnnot>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#publicationParticipant">
|
||||||
|
<rdfs:label xml:lang="en-US">Publication Participant</rdfs:label>
|
||||||
|
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
|
||||||
|
>-1</vitro:displayLimitAnnot>
|
||||||
|
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
|
||||||
|
>-1</vitro:displayRankAnnot>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#TOCItem">
|
||||||
|
<rdfs:label xml:lang="en-US">TOC Item</rdfs:label>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>TOC Item</rdfs:label>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#organization">
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:label xml:lang="en-US">Organization</rdfs:label>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#elenphArticle">
|
||||||
|
<rdfs:subClassOf>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#encArticle"/>
|
||||||
|
</rdfs:subClassOf>
|
||||||
|
<owl:equivalentClass rdf:resource="https://litvinovg.pro/text_structures#elenphArticle"/>
|
||||||
|
<vitro:customDisplayViewAnnot>elenphAritcle.ftl</vitro:customDisplayViewAnnot>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Electronic philosophical encyclopedia article</rdfs:label>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:inClassGroup rdf:resource="http://vivo.mydomain.edu/individual/vitroClassGroupElenpharticles"/>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#compilation">
|
||||||
|
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#complexPublication"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:customDisplayViewAnnot>compilation.ftl</vitro:customDisplayViewAnnot>
|
||||||
|
<rdfs:label xml:lang="en-US">Compilation</rdfs:label>
|
||||||
|
<vitro:customEntryFormAnnot>edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.CompilationGenerator</vitro:customEntryFormAnnot>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#textExcerpt">
|
||||||
|
<vitro:inClassGroup rdf:resource="http://research.iph.ras.ru/vivo/individual/vitroClassGroupTableofcontents"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
|
||||||
|
<owl:equivalentClass rdf:resource="https://litvinovg.pro/text_structures#textExcerpt"/>
|
||||||
|
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#publication"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Text excerpt</rdfs:label>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#book">
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:label xml:lang="en-US">Book</rdfs:label>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Book</rdfs:label>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
|
||||||
|
>-1</vitro:displayLimitAnnot>
|
||||||
|
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
|
||||||
|
>-1</vitro:displayLimitAnnot>
|
||||||
|
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
|
||||||
|
>-1</vitro:displayRankAnnot>
|
||||||
|
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
|
||||||
|
>-1</vitro:displayRankAnnot>
|
||||||
|
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#complexPublication"/>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#journalArticle">
|
||||||
|
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
|
||||||
|
>-1</vitro:displayLimitAnnot>
|
||||||
|
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
|
||||||
|
>-1</vitro:displayLimitAnnot>
|
||||||
|
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#complexPublication"/>
|
||||||
|
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
|
||||||
|
>-1</vitro:displayRankAnnot>
|
||||||
|
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#int"
|
||||||
|
>-1</vitro:displayRankAnnot>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Journal Article</rdfs:label>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#encArticle">
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Encyclopedia article</rdfs:label>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:displayRankAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
|
||||||
|
>-1</vitro:displayRankAnnot>
|
||||||
|
<vitro:displayLimitAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#integer"
|
||||||
|
>-1</vitro:displayLimitAnnot>
|
||||||
|
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#complexPublication"/>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#elenphExcerpt">
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:inClassGroup rdf:resource="http://vivo.mydomain.edu/individual/vitroClassGrouptextexcerpts"/>
|
||||||
|
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
|
||||||
|
<owl:equivalentClass rdf:resource="https://litvinovg.pro/text_structures#elenphExcerpt"/>
|
||||||
|
<vitro:customDisplayViewAnnot>elenphExcerpt.ftl</vitro:customDisplayViewAnnot>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subClassOf rdf:resource="https://litvinovg.pro/text_structures#textExcerpt"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Elenph Excerpt</rdfs:label>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:Class rdf:about="https://litvinovg.pro/text_structures#TOCLevel">
|
||||||
|
<vitro:inClassGroup rdf:resource="http://research.iph.ras.ru/vivo/individual/vitroClassGroupTableofcontents"/>
|
||||||
|
<owl:equivalentClass rdf:resource="https://litvinovg.pro/text_structures#TOCLevel"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:label xml:lang="en-US">TOC Level</rdfs:label>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>TOC Level</rdfs:label>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<obo:IAO_0000115>Table of contents element</obo:IAO_0000115>
|
||||||
|
<rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:Class>
|
||||||
|
<owl:ObjectProperty rdf:about="https://litvinovg.pro/text_structures#hasAuthor">
|
||||||
|
<rdfs:label xml:lang="en-US">has author</rdfs:label>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#textExcerpt"/>
|
||||||
|
<rdfs:range rdf:resource="https://litvinovg.pro/text_structures#publicationParticipant"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
|
||||||
|
>true</vitro:selectFromExistingAnnot>
|
||||||
|
</owl:ObjectProperty>
|
||||||
|
<owl:ObjectProperty rdf:about="https://litvinovg.pro/text_structures#affiliatedWith">
|
||||||
|
<rdfs:label xml:lang="en-US">affiliated with</rdfs:label>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publicationParticipant"/>
|
||||||
|
<rdfs:range rdf:resource="https://litvinovg.pro/text_structures#organization"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
|
||||||
|
>true</vitro:selectFromExistingAnnot>
|
||||||
|
</owl:ObjectProperty>
|
||||||
|
<owl:ObjectProperty rdf:about="https://litvinovg.pro/text_structures#compilatorOf">
|
||||||
|
<rdfs:label xml:lang="en-US">compilatorOf</rdfs:label>
|
||||||
|
<rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
|
||||||
|
<rdfs:range rdf:resource="https://litvinovg.pro/text_structures#compilation"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
|
||||||
|
>true</vitro:selectFromExistingAnnot>
|
||||||
|
</owl:ObjectProperty>
|
||||||
|
<owl:ObjectProperty rdf:about="https://litvinovg.pro/text_structures#hasTOCItem">
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#TOCLevel"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>has TOC item</rdfs:label>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#hasTOCItem"/>
|
||||||
|
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
|
||||||
|
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
|
||||||
|
>true</vitro:selectFromExistingAnnot>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topObjectProperty"/>
|
||||||
|
<rdfs:range rdf:resource="https://litvinovg.pro/text_structures#TOCItem"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:ObjectProperty>
|
||||||
|
<owl:ObjectProperty rdf:about="https://litvinovg.pro/text_structures#hasText">
|
||||||
|
<rdfs:range rdf:resource="https://litvinovg.pro/text_structures#textExcerpt"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#TOCLevel"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:label xml:lang="en-US">has text</rdfs:label>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>has text</rdfs:label>
|
||||||
|
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
|
||||||
|
>true</vitro:selectFromExistingAnnot>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#hasText"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topObjectProperty"/>
|
||||||
|
</owl:ObjectProperty>
|
||||||
|
<owl:ObjectProperty rdf:about="https://litvinovg.pro/text_structures#pointsTo">
|
||||||
|
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topObjectProperty"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>points to</rdfs:label>
|
||||||
|
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<rdfs:range rdf:resource="https://litvinovg.pro/text_structures#TOCLevel"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#TOCItem"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#pointsTo"/>
|
||||||
|
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
|
||||||
|
>true</vitro:selectFromExistingAnnot>
|
||||||
|
</owl:ObjectProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#queryBuilderRules">
|
||||||
|
<rdfs:label xml:lang="en-US">Query Builder Rules</rdfs:label>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#compilation"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#rawQueryString">
|
||||||
|
<rdfs:label xml:lang="en-US">Raw Query String</rdfs:label>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#compilation"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#participantInitials">
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publicationParticipant"/>
|
||||||
|
<rdfs:label xml:lang="en-US">Publication Participant Initials</rdfs:label>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#doi">
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
|
||||||
|
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#doi"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphArticle"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>DOI</rdfs:label>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#participantGivenName">
|
||||||
|
<rdfs:label xml:lang="en-US">Publication Participant Given Name</rdfs:label>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publicationParticipant"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#firstPublication">
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphArticle"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#firstPublication"/>
|
||||||
|
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>First publication</rdfs:label>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#modificationTime">
|
||||||
|
<rdfs:label xml:lang="en-US">Modification time</rdfs:label>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publication"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#keywords">
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Keywords</rdfs:label>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphExcerpt"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#keywords"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
|
||||||
|
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#htmlExcerpt">
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#textExcerpt"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
|
||||||
|
<vitro:editing>HTML</vitro:editing>
|
||||||
|
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#htmlExcerpt"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>html Excerpt</rdfs:label>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#participantFamily">
|
||||||
|
<rdfs:label xml:lang="en-US">Publication Participant Family</rdfs:label>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publicationParticipant"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#issue">
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphArticle"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Issue</rdfs:label>
|
||||||
|
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#issue"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#participantEmail">
|
||||||
|
<rdfs:label xml:lang="en-US">Publication Participant email</rdfs:label>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#publicationParticipant"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#works">
|
||||||
|
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#works"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphExcerpt"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Works</rdfs:label>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#yearAndMonth">
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Year and month</rdfs:label>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphArticle"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#gYearMonth"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#yearAndMonth"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#bibliography">
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphExcerpt"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>bibliography</rdfs:label>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#bibliography"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:DatatypeProperty rdf:about="https://litvinovg.pro/text_structures#year">
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#elenphArticle"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#gYear"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Year</rdfs:label>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/>
|
||||||
|
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#year"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
</owl:DatatypeProperty>
|
||||||
|
<owl:FunctionalProperty rdf:about="https://litvinovg.pro/text_structures#organizationAddress">
|
||||||
|
<rdfs:label xml:lang="en-US">Organization Address</rdfs:label>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#organization"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
|
||||||
|
</owl:FunctionalProperty>
|
||||||
|
<owl:FunctionalProperty rdf:about="https://litvinovg.pro/text_structures#organizationPostalCode">
|
||||||
|
<rdfs:label xml:lang="en-US">Organization Postal Code</rdfs:label>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#organization"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
|
||||||
|
</owl:FunctionalProperty>
|
||||||
|
<owl:FunctionalProperty rdf:about="https://litvinovg.pro/text_structures#officialOrganizationName">
|
||||||
|
<rdfs:label xml:lang="en-US">Official Organization Name</rdfs:label>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#organization"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
|
||||||
|
</owl:FunctionalProperty>
|
||||||
|
<owl:FunctionalProperty rdf:about="https://litvinovg.pro/text_structures#">
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>htmlExcerpt</rdfs:label>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#Excerpt"/>
|
||||||
|
</owl:FunctionalProperty>
|
||||||
|
<owl:FunctionalProperty rdf:about="https://litvinovg.pro/text_structures#itemNumber">
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="https://litvinovg.pro/text_structures#itemNumber"/>
|
||||||
|
<rdfs:subPropertyOf rdf:resource="http://www.w3.org/2002/07/owl#topDataProperty"/>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>Item Number</rdfs:label>
|
||||||
|
<vitro:inPropertyGroupAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/default#n6578"/>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#TOCItem"/>
|
||||||
|
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/>
|
||||||
|
</owl:FunctionalProperty>
|
||||||
|
<owl:FunctionalProperty rdf:about="https://litvinovg.pro/text_structures#hasTOC">
|
||||||
|
<rdfs:range rdf:resource="https://litvinovg.pro/text_structures#TOC"/>
|
||||||
|
<rdfs:domain rdf:resource="https://litvinovg.pro/text_structures#complexPublication"/>
|
||||||
|
<vitro:prohibitedFromUpdateBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:selectFromExistingAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
|
||||||
|
>true</vitro:selectFromExistingAnnot>
|
||||||
|
<vitro:hiddenFromPublishBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<vitro:hiddenFromDisplayBelowRoleLevelAnnot rdf:resource="http://vitro.mannlib.cornell.edu/ns/vitro/role#public"/>
|
||||||
|
<rdfs:label xml:lang="en-US">has TOC</rdfs:label>
|
||||||
|
<rdfs:label rdf:datatype="http://www.w3.org/1999/02/22-rdf-syntax-ns#langString"
|
||||||
|
>has TOC</rdfs:label>
|
||||||
|
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>
|
||||||
|
</owl:FunctionalProperty>
|
||||||
|
</rdf:RDF>
|
|
@ -4763,9 +4763,8 @@ use one freetextKeyword assertion for each keyword or phrase.</obo:IAO_0000112>
|
||||||
<!-- http://vivoweb.org/ontology/core#researcherId -->
|
<!-- http://vivoweb.org/ontology/core#researcherId -->
|
||||||
|
|
||||||
<owl:DatatypeProperty rdf:about="http://vivoweb.org/ontology/core#researcherId">
|
<owl:DatatypeProperty rdf:about="http://vivoweb.org/ontology/core#researcherId">
|
||||||
<rdfs:label xml:lang="en">ISI Researcher ID</rdfs:label>
|
<rdfs:label xml:lang="en">ResearcherID</rdfs:label>
|
||||||
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">RearcherID is a Thomson Reuters project where researchers have a place to manage and share their professional information. It will allow them to solve author identity issues while simultaneously adding dynamic citation metrics and collaboration networks to your personal profile.
|
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">ResearcherID is a Clarivate project where researchers have a place to manage and share their professional information. It will allow them to solve author identity issues while simultaneously adding dynamic citation metrics and collaboration networks to your personal profile. http://www.researcherid.com/</obo:IAO_0000112>
|
||||||
Definition source: http://isiwebofknowledge.com/researcherid/</obo:IAO_0000112>
|
|
||||||
<rdfs:subPropertyOf rdf:resource="http://vivoweb.org/ontology/core#identifier"/>
|
<rdfs:subPropertyOf rdf:resource="http://vivoweb.org/ontology/core#identifier"/>
|
||||||
<rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
|
<rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
|
||||||
</owl:DatatypeProperty>
|
</owl:DatatypeProperty>
|
||||||
|
@ -5982,6 +5981,32 @@ To enable other Gender/Sex codes to be used, this dataproperty has range URI. Th
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- http://purl.obolibrary.org/obo/BCO_0000003 -->
|
||||||
|
|
||||||
|
<owl:Class rdf:about="http://purl.obolibrary.org/obo/BCO_0000003">
|
||||||
|
<rdfs:label xml:lang="en">Data Collection Process</rdfs:label>
|
||||||
|
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#CollectionProcess"/>
|
||||||
|
<obo:IAO_0000112 xml:lang="en">Observing and recording the presence or absence of butterflies during a transect walk.; A trip camera capture of an image of a jaguar is an observation, because it is "selected" by the camera as worthy of obsevation simply by virtue of moving in front of the camera.; Seeing three pelicans flying overhead on Christmas day and report them as part of the Christmas Bird Count.</obo:IAO_0000112>
|
||||||
|
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000125"/>
|
||||||
|
<obo:IAO_0000115 xml:lang="en">A process in which a person or machine sees or detects a material entity and selects it as worthy of observation, and which has as output an information content entity about the selected material entity.</obo:IAO_0000115>
|
||||||
|
<obo:IAO_0000116 xml:lang="en">Under development</obo:IAO_0000116>
|
||||||
|
<vitro:descriptionAnnot rdf:datatype="http://www.w3.org/2001/XMLSchema#string">A collection process in which an information content entity is collected for research or scholarly purposes. The immediate use case is recording observations of taxa (presence/absence). Need to figure out how this relates to OBI assay OBI:0000070. maybe has broader synonym OBI:0000070</vitro:descriptionAnnot>
|
||||||
|
</owl:Class>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- http://purl.obolibrary.org/obo/BCO_0000042 -->
|
||||||
|
|
||||||
|
<owl:Class rdf:about="http://purl.obolibrary.org/obo/BCO_0000042">
|
||||||
|
<rdfs:label xml:lang="en">Taxonomic Identification Process</rdfs:label>
|
||||||
|
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#IdentificationProcess"/>
|
||||||
|
<obo:IAO_0000112 xml:lang="en">Using a key to identify a plant in the field.; Using DNA barcoding to identify a plant species.; Associating a museum specimen with a specific taxonomic concept based on its characters.; Using BLAST to identify the taxa present in an environmental (metagenomic) sample.</obo:IAO_0000112>
|
||||||
|
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000125"/>
|
||||||
|
<obo:IAO_0000115 xml:lang="en">A curation process in which a taxonomic name is appied to a biological entity to denote membership in a taxon.</obo:IAO_0000115>
|
||||||
|
</owl:Class>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- http://purl.obolibrary.org/obo/BFO_0000001 -->
|
<!-- http://purl.obolibrary.org/obo/BFO_0000001 -->
|
||||||
|
|
||||||
<owl:Class rdf:about="http://purl.obolibrary.org/obo/BFO_0000001">
|
<owl:Class rdf:about="http://purl.obolibrary.org/obo/BFO_0000001">
|
||||||
|
@ -9754,6 +9779,20 @@ This class allows for linking an author to a publication while indicating inform
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- http://vivoweb.org/ontology/core#GeoreferencingProcess -->
|
||||||
|
|
||||||
|
<owl:Class rdf:about="http://vivoweb.org/ontology/core#GeoreferencingProcess">
|
||||||
|
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#CurationProcess"/>
|
||||||
|
<obo:IAO_0000111>Georeferenced</obo:IAO_0000111>
|
||||||
|
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000123"/>
|
||||||
|
<obo:IAO_0000115 xml:lang="en">A curation process in which a material entity is annotated with geo-coordinates to indicate the location of a collection</obo:IAO_0000115>
|
||||||
|
<obo:IAO_0000116 xml:lang="en">Under development</obo:IAO_0000116>
|
||||||
|
<obo:IAO_0000117 xml:lang="en">PERSON: Anne Thessen</obo:IAO_0000117>
|
||||||
|
<rdfs:label xml:lang="en">Georeferencing Process</rdfs:label>
|
||||||
|
</owl:Class>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- http://vivoweb.org/ontology/core#GovernmentAgency -->
|
<!-- http://vivoweb.org/ontology/core#GovernmentAgency -->
|
||||||
|
|
||||||
<owl:Class rdf:about="http://vivoweb.org/ontology/core#GovernmentAgency">
|
<owl:Class rdf:about="http://vivoweb.org/ontology/core#GovernmentAgency">
|
||||||
|
@ -9846,6 +9885,21 @@ This class allows for linking an author to a publication while indicating inform
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- http://vivoweb.org/ontology/core#IdentificationProcess -->
|
||||||
|
|
||||||
|
<owl:Class rdf:about="http://vivoweb.org/ontology/core#IdentificationProcess">
|
||||||
|
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#CurationProcess"/>
|
||||||
|
<obo:IAO_0000111>Identified</obo:IAO_0000111>
|
||||||
|
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000123"/>
|
||||||
|
<obo:IAO_0000115 xml:lang="en">A curation process in which a term is appied to a material entity to denote its type or kind</obo:IAO_0000115>
|
||||||
|
<obo:IAO_0000116 xml:lang="en">Under development</obo:IAO_0000116>
|
||||||
|
<obo:IAO_0000117 xml:lang="en">PERSON: Anne Thessen</obo:IAO_0000117>
|
||||||
|
<vitro:descriptionAnnot>This is intended to apply to a wide variety of material entities, not just biological specimens.</vitro:descriptionAnnot>
|
||||||
|
<rdfs:label xml:lang="en">Identification Process</rdfs:label>
|
||||||
|
</owl:Class>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- http://vivoweb.org/ontology/core#Institute -->
|
<!-- http://vivoweb.org/ontology/core#Institute -->
|
||||||
|
|
||||||
<owl:Class rdf:about="http://vivoweb.org/ontology/core#Institute">
|
<owl:Class rdf:about="http://vivoweb.org/ontology/core#Institute">
|
||||||
|
@ -10028,6 +10082,21 @@ This class allows for linking an author to a publication while indicating inform
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- http://vivoweb.org/ontology/core#MeasurementProcess -->
|
||||||
|
|
||||||
|
<owl:Class rdf:about="http://vivoweb.org/ontology/core#MeasurementProcess">
|
||||||
|
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#CurationProcess"/>
|
||||||
|
<obo:IAO_0000111>Measured</obo:IAO_0000111>
|
||||||
|
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000123"/>
|
||||||
|
<obo:IAO_0000115 xml:lang="en">A curation process in which data are collected about a specimen in a collection</obo:IAO_0000115>
|
||||||
|
<obo:IAO_0000116 xml:lang="en">Under development</obo:IAO_0000116>
|
||||||
|
<obo:IAO_0000117 xml:lang="en">PERSON: Anne Thessen</obo:IAO_0000117>
|
||||||
|
<vitro:descriptionAnnot>possibly has broader synonym OBI assay OBI:0000070 because all measurement processes will be assays, but not all assays will be performed on a material entity in a collection</vitro:descriptionAnnot>
|
||||||
|
<rdfs:label xml:lang="en">Measurement Process</rdfs:label>
|
||||||
|
</owl:Class>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- http://vivoweb.org/ontology/core#MedicalResidency -->
|
<!-- http://vivoweb.org/ontology/core#MedicalResidency -->
|
||||||
|
|
||||||
<owl:Class rdf:about="http://vivoweb.org/ontology/core#MedicalResidency">
|
<owl:Class rdf:about="http://vivoweb.org/ontology/core#MedicalResidency">
|
||||||
|
|
|
@ -1,6 +1,20 @@
|
||||||
This directory contains ontology "TBox" files with class and property definitions.
|
This directory contains ontology "TBox" files with class and property
|
||||||
These are loaded by the VIVO application when it starts for the first time, after
|
definitions or annotations that are intended to be editable in the VIVO GUI.
|
||||||
the initial installation or after an upgrade installation that involves changes
|
|
||||||
to these files.
|
These files are loaded by the VIVO application when it starts for the first time
|
||||||
|
and during later restarts if the contents have changed. A triple is updated
|
||||||
|
if there is no conflicting value for the same subject and predicate that was
|
||||||
|
added to the triple store via the GUI or data ingest (e.g. SPARQL UPDATE).
|
||||||
|
|
||||||
|
The file vitroAnnotations.n3 contains triples with predicates in the vitro
|
||||||
|
namespace and objects that are not literals with language tags.
|
||||||
|
|
||||||
|
The VIVO-languages project contains additional language-specific
|
||||||
|
vitroAnnotations.n3 files where all of the triples contain language-tagged
|
||||||
|
literals.
|
||||||
|
|
||||||
|
VIVO-languages also provides additional annotation files
|
||||||
|
(e.g. initialTBoxAnnotations_en_US.n3) containing triples with predicates
|
||||||
|
in ontologies/voabularies outside the vitro namespace (e.g. rdfs:label).
|
||||||
|
|
||||||
See ../filegraph/README.md for more information about "TBox" files.
|
See ../filegraph/README.md for more information about "TBox" files.
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
@prefix vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> .
|
||||||
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
||||||
|
@prefix ts_: <https://litvinovg.pro/text_structures#> .
|
||||||
|
|
||||||
|
ts_:elenphArticle vitro:customDisplayViewAnnot "elenphAritcle.ftl"^^xsd:string .
|
|
@ -0,0 +1,5 @@
|
||||||
|
@prefix vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> .
|
||||||
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
||||||
|
@prefix ts_: <https://litvinovg.pro/text_structures#> .
|
||||||
|
|
||||||
|
ts_:elenphExcerpt vitro:customDisplayViewAnnot "elenphExcerpt.ftl"^^xsd:string .
|
|
@ -0,0 +1,5 @@
|
||||||
|
@prefix vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> .
|
||||||
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
|
||||||
|
@prefix pr: <https://iph.ras.ru/relationships#> .
|
||||||
|
|
||||||
|
pr:rubric vitro:customDisplayViewAnnot "rubric.ftl"^^xsd:string .
|
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,5 @@
|
||||||
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
|
|
|
@ -7,13 +7,13 @@
|
||||||
|
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-installer-home</artifactId>
|
<artifactId>vivo-installer-home</artifactId>
|
||||||
<version>1.11.2-SNAPSHOT</version>
|
<version>1.12.1-SNAPSHOT</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-installer</artifactId>
|
<artifactId>vivo-installer</artifactId>
|
||||||
<version>1.11.2-SNAPSHOT</version>
|
<version>1.12.1-SNAPSHOT</version>
|
||||||
<relativePath>..</relativePath>
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
@ -24,6 +24,34 @@
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
|
<profile>
|
||||||
|
<id>package</id>
|
||||||
|
<activation>
|
||||||
|
<property><name>vivo-dir</name></property>
|
||||||
|
</activation>
|
||||||
|
<build>
|
||||||
|
<finalName>${app-name}</finalName>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<descriptors>
|
||||||
|
<descriptor>src/main/assembly/home.xml</descriptor>
|
||||||
|
</descriptors>
|
||||||
|
<appendAssemblyId>false</appendAssemblyId>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>single</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</profile>
|
||||||
<profile>
|
<profile>
|
||||||
<id>install</id>
|
<id>install</id>
|
||||||
<activation>
|
<activation>
|
||||||
|
@ -108,11 +136,11 @@
|
||||||
<type>tar.gz</type>
|
<type>tar.gz</type>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- Dependency for multilingual support -->
|
<!-- Dependency for multilingual support -->
|
||||||
<!-- dependency>
|
<dependency>
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-languages-home</artifactId>
|
<artifactId>vivo-languages-home-core</artifactId>
|
||||||
<version>[2.0.0,2.1.0)</version>
|
<version>${project.version}</version>
|
||||||
<type>tar.gz</type>
|
<type>tar.gz</type>
|
||||||
</dependency -->
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -7,12 +7,13 @@
|
||||||
|
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-installer</artifactId>
|
<artifactId>vivo-installer</artifactId>
|
||||||
<version>1.11.2-SNAPSHOT</version>
|
<version>1.12.1-SNAPSHOT</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<name>VIVO Installer</name>
|
<name>VIVO Installer</name>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
<app-name>vivo</app-name>
|
||||||
<vitro-version>${project.version}</vitro-version>
|
<vitro-version>${project.version}</vitro-version>
|
||||||
<maven-site-plugin.skip>true</maven-site-plugin.skip>
|
<maven-site-plugin.skip>true</maven-site-plugin.skip>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
@ -41,12 +42,6 @@
|
||||||
<skip>true</skip>
|
<skip>true</skip>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
|
||||||
<artifactId>maven-deploy-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<skip>true</skip>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
</plugins>
|
||||||
<pluginManagement>
|
<pluginManagement>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
@ -70,10 +65,6 @@
|
||||||
<artifactId>maven-dependency-plugin</artifactId>
|
<artifactId>maven-dependency-plugin</artifactId>
|
||||||
<version>2.10</version>
|
<version>2.10</version>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
|
||||||
<artifactId>maven-deploy-plugin</artifactId>
|
|
||||||
<version>2.7</version>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<artifactId>maven-enforcer-plugin</artifactId>
|
<artifactId>maven-enforcer-plugin</artifactId>
|
||||||
<version>1.4.1</version>
|
<version>1.4.1</version>
|
||||||
|
@ -228,6 +219,21 @@
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
</profile>
|
</profile>
|
||||||
|
<profile>
|
||||||
|
<id>skip</id>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-deploy-plugin</artifactId>
|
||||||
|
<version>2.8.2</version>
|
||||||
|
<configuration>
|
||||||
|
<skip>true</skip>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</profile>
|
||||||
</profiles>
|
</profiles>
|
||||||
|
|
||||||
<distributionManagement>
|
<distributionManagement>
|
||||||
|
@ -235,6 +241,14 @@
|
||||||
<id>vivo-installer</id>
|
<id>vivo-installer</id>
|
||||||
<url>http://vivo-project.github.io/</url>
|
<url>http://vivo-project.github.io/</url>
|
||||||
</site>
|
</site>
|
||||||
|
<snapshotRepository>
|
||||||
|
<id>ossrh</id>
|
||||||
|
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
|
||||||
|
</snapshotRepository>
|
||||||
|
<repository>
|
||||||
|
<id>ossrh</id>
|
||||||
|
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
|
||||||
|
</repository>
|
||||||
</distributionManagement>
|
</distributionManagement>
|
||||||
|
|
||||||
<reporting>
|
<reporting>
|
||||||
|
@ -258,7 +272,7 @@
|
||||||
<repository>
|
<repository>
|
||||||
<id>vivo-dependencies</id>
|
<id>vivo-dependencies</id>
|
||||||
<name>VIVO Dependencies</name>
|
<name>VIVO Dependencies</name>
|
||||||
<url>https://raw.github.com/vivo-project/dependencies/master/</url>
|
<url>https://raw.github.com/vivo-project/dependencies/main/</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
|
||||||
<repository>
|
<repository>
|
||||||
|
|
|
@ -7,13 +7,13 @@
|
||||||
|
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-installer-vivo</artifactId>
|
<artifactId>vivo-installer-vivo</artifactId>
|
||||||
<version>1.11.2-SNAPSHOT</version>
|
<version>1.12.1-SNAPSHOT</version>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-installer</artifactId>
|
<artifactId>vivo-installer</artifactId>
|
||||||
<version>1.11.2-SNAPSHOT</version>
|
<version>1.12.1-SNAPSHOT</version>
|
||||||
<relativePath>..</relativePath>
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
@ -122,6 +122,7 @@
|
||||||
</profiles>
|
</profiles>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
<finalName>${app-name}</finalName>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<artifactId>maven-install-plugin</artifactId>
|
<artifactId>maven-install-plugin</artifactId>
|
||||||
|
@ -153,18 +154,18 @@
|
||||||
<type>war</type>
|
<type>war</type>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- Dependencies for multilingual support -->
|
<!-- Dependencies for multilingual support -->
|
||||||
<!-- dependency>
|
<dependency>
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vitro-languages-webapp</artifactId>
|
<artifactId>vitro-languages-webapp-core</artifactId>
|
||||||
<version>[2.0.0,2.1.0)</version>
|
<version>${project.version}</version>
|
||||||
<type>war</type>
|
<type>war</type>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-languages-webapp</artifactId>
|
<artifactId>vivo-languages-webapp-core</artifactId>
|
||||||
<version>[2.0.0,2.1.0)</version>
|
<version>${project.version}</version>
|
||||||
<type>war</type>
|
<type>war</type>
|
||||||
</dependency -->
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>javax.servlet</groupId>
|
<groupId>javax.servlet</groupId>
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
# debug.log4j.properties exists will be used instead, if it exists, but is not stored in Subversion.
|
# debug.log4j.properties exists will be used instead, if it exists, but is not stored in Subversion.
|
||||||
|
|
||||||
log4j.appender.AllAppender=org.apache.log4j.RollingFileAppender
|
log4j.appender.AllAppender=org.apache.log4j.RollingFileAppender
|
||||||
log4j.appender.AllAppender.File= ${catalina.base}/logs/${app-name}.all.log
|
log4j.appender.AllAppender.File=${catalina.base}/logs/${app-name}.all.log
|
||||||
log4j.appender.AllAppender.MaxFileSize=10MB
|
log4j.appender.AllAppender.MaxFileSize=10MB
|
||||||
log4j.appender.AllAppender.MaxBackupIndex=10
|
log4j.appender.AllAppender.MaxBackupIndex=10
|
||||||
log4j.appender.AllAppender.layout=org.apache.log4j.PatternLayout
|
log4j.appender.AllAppender.layout=org.apache.log4j.PatternLayout
|
||||||
|
|
65
pom.xml
65
pom.xml
|
@ -1,13 +1,10 @@
|
||||||
<project
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-project</artifactId>
|
<artifactId>vivo-project</artifactId>
|
||||||
<version>1.11.2-SNAPSHOT</version>
|
<version>1.12.1-SNAPSHOT</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<name>VIVO</name>
|
<name>VIVO</name>
|
||||||
|
@ -43,11 +40,9 @@
|
||||||
</developer>
|
</developer>
|
||||||
</developers>
|
</developers>
|
||||||
|
|
||||||
<!--
|
<!-- The SCM repository location is used by Continuum to update against
|
||||||
The SCM repository location is used by Continuum to update against
|
when changes have occurred. This spawns a new build cycle and releases snapshots
|
||||||
when changes have occurred. This spawns a new build cycle and releases
|
into the snapshot repository below. -->
|
||||||
snapshots into the snapshot repository below.
|
|
||||||
-->
|
|
||||||
<scm>
|
<scm>
|
||||||
<connection>scm:git:git@github.com:vivo-project/VIVO.git</connection>
|
<connection>scm:git:git@github.com:vivo-project/VIVO.git</connection>
|
||||||
<developerConnection>scm:git:git@github.com:vivo-project/VIVO.git</developerConnection>
|
<developerConnection>scm:git:git@github.com:vivo-project/VIVO.git</developerConnection>
|
||||||
|
@ -72,6 +67,28 @@
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
|
<profile>
|
||||||
|
<id>Vitro-languages</id>
|
||||||
|
<activation>
|
||||||
|
<file>
|
||||||
|
<exists>../Vitro-languages/pom.xml</exists>
|
||||||
|
</file>
|
||||||
|
</activation>
|
||||||
|
<modules>
|
||||||
|
<module>../Vitro-languages</module>
|
||||||
|
</modules>
|
||||||
|
</profile>
|
||||||
|
<profile>
|
||||||
|
<id>VIVO-languages</id>
|
||||||
|
<activation>
|
||||||
|
<file>
|
||||||
|
<exists>../VIVO-languages/pom.xml</exists>
|
||||||
|
</file>
|
||||||
|
</activation>
|
||||||
|
<modules>
|
||||||
|
<module>../VIVO-languages</module>
|
||||||
|
</modules>
|
||||||
|
</profile>
|
||||||
<profile>
|
<profile>
|
||||||
<id>vitro</id>
|
<id>vitro</id>
|
||||||
<activation>
|
<activation>
|
||||||
|
@ -335,7 +352,8 @@
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
<!-- Used to validate all code style rules in source code using Checkstyle -->
|
<!-- Used to validate all code style rules in source code using
|
||||||
|
Checkstyle -->
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-checkstyle-plugin</artifactId>
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
||||||
|
@ -343,7 +361,8 @@
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>verify-style</id>
|
<id>verify-style</id>
|
||||||
<!-- Bind to verify so it runs after package & unit tests, but before install -->
|
<!-- Bind to verify so it runs after package & unit
|
||||||
|
tests, but before install -->
|
||||||
<phase>verify</phase>
|
<phase>verify</phase>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>check</goal>
|
<goal>check</goal>
|
||||||
|
@ -469,15 +488,20 @@
|
||||||
<failOnError>false</failOnError>
|
<failOnError>false</failOnError>
|
||||||
</configuration>
|
</configuration>
|
||||||
<reportSets>
|
<reportSets>
|
||||||
<reportSet><!-- by default, id = "default" -->
|
<reportSet>
|
||||||
<reports><!-- select non-aggregate reports -->
|
<!-- by default, id = "default" -->
|
||||||
|
<reports>
|
||||||
|
<!-- select non-aggregate reports -->
|
||||||
<report>javadoc</report>
|
<report>javadoc</report>
|
||||||
<report>test-javadoc</report>
|
<report>test-javadoc</report>
|
||||||
</reports>
|
</reports>
|
||||||
</reportSet>
|
</reportSet>
|
||||||
<reportSet><!-- aggregate reportSet, to define in poms having modules -->
|
<reportSet>
|
||||||
|
<!-- aggregate reportSet, to define in poms
|
||||||
|
having modules -->
|
||||||
<id>aggregate</id>
|
<id>aggregate</id>
|
||||||
<inherited>false</inherited><!-- don't run aggregate in child modules -->
|
<inherited>false</inherited> <!-- don't run aggregate
|
||||||
|
in child modules -->
|
||||||
<reports>
|
<reports>
|
||||||
<report>aggregate</report>
|
<report>aggregate</report>
|
||||||
</reports>
|
</reports>
|
||||||
|
@ -501,15 +525,14 @@
|
||||||
</plugins>
|
</plugins>
|
||||||
</reporting>
|
</reporting>
|
||||||
|
|
||||||
<!--
|
<!-- Add a custom repository, which is actually just a simple GitHub
|
||||||
Add a custom repository, which is actually just a simple GitHub project
|
project in order to distribute some dependencies that aren't part of Maven
|
||||||
in order to distribute some dependencies that aren't part of Maven central
|
central -->
|
||||||
-->
|
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>vivo-dependencies</id>
|
<id>vivo-dependencies</id>
|
||||||
<name>VIVO Dependencies</name>
|
<name>VIVO Dependencies</name>
|
||||||
<url>https://raw.github.com/vivo-project/dependencies/master/</url>
|
<url>https://raw.github.com/vivo-project/dependencies/main/</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
|
||||||
<repository>
|
<repository>
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# RC Script
|
# RC Script
|
||||||
|
|
||||||
RC_VERSION=1.11.1
|
RC_VERSION=1.12.0
|
||||||
RC_NUM=1
|
RC_NUM=1
|
||||||
|
|
||||||
git checkout master
|
git checkout main
|
||||||
git pull
|
git pull
|
||||||
git push origin master:rel-${RC_VERSION}-RC
|
git push origin main:rel-${RC_VERSION}-RC
|
||||||
|
|
||||||
|
|
||||||
git checkout rel-${RC_VERSION}-RC
|
git checkout rel-${RC_VERSION}-RC
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
<artifactId>junit</artifactId>
|
<artifactId>junit</artifactId>
|
||||||
<version>4.12</version>
|
<version>4.13.1</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
60
start.sh
Normal file
60
start.sh
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# allow easier debugging with `docker run -e VERBOSE=yes`
|
||||||
|
if [[ "$VERBOSE" = "yes" ]]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
|
# allow easier reset home with `docker run -e RESET_HOME=true`
|
||||||
|
if [[ "$RESET_HOME" = "true" ]]; then
|
||||||
|
echo 'Clearing VIVO HOME /usr/local/vivo/home'
|
||||||
|
rm -rf /usr/local/vivo/home/*
|
||||||
|
fi
|
||||||
|
|
||||||
|
# copy home bin if not exists
|
||||||
|
if [ ! -d /usr/local/vivo/home/bin ]; then
|
||||||
|
echo "Copying home bin directory to /usr/local/vivo/home/bin"
|
||||||
|
cp -r /vivo-home/bin /usr/local/vivo/home/bin
|
||||||
|
fi
|
||||||
|
|
||||||
|
# copy home config if not exists
|
||||||
|
if [ ! -d /usr/local/vivo/home/config ]; then
|
||||||
|
echo "Copying home config directory to /usr/local/vivo/home/config"
|
||||||
|
cp -r /vivo-home/config /usr/local/vivo/home/config
|
||||||
|
fi
|
||||||
|
|
||||||
|
# copy home rdf if not exists
|
||||||
|
if [ ! -d /usr/local/vivo/home/rdf ]; then
|
||||||
|
echo "Copying home rdf directory to /usr/local/vivo/home/rdf"
|
||||||
|
cp -r /vivo-home/rdf /usr/local/vivo/home/rdf
|
||||||
|
fi
|
||||||
|
|
||||||
|
# copy runtime.properties if it does not already exist in target home directory
|
||||||
|
if [ -f /usr/local/vivo/home/config/example.runtime.properties ]; then
|
||||||
|
if [ ! -f /usr/local/vivo/home/config/runtime.properties ]
|
||||||
|
then
|
||||||
|
echo "Copying example.runtime.properties to /usr/local/vivo/home/config/runtime.properties"
|
||||||
|
cp /usr/local/vivo/home/config/example.runtime.properties /usr/local/vivo/home/config/runtime.properties
|
||||||
|
|
||||||
|
# template runtime.properties vitro.local.solr.url value to $SOLR_URL value
|
||||||
|
echo "Templating runtime.properties vitro.local.solr.url = $SOLR_URL"
|
||||||
|
sed -i "s,http://localhost:8983/solr/vivocore,$SOLR_URL,g" /usr/local/vivo/home/config/runtime.properties
|
||||||
|
else
|
||||||
|
echo "Using existing /usr/local/vivo/home/config/runtime.properties"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# copy applicationSetup.n3 if it does not already exist in target home directory
|
||||||
|
if [ -f /usr/local/vivo/home/config/example.applicationSetup.n3 ]; then
|
||||||
|
if [ ! -f /usr/local/vivo/home/config/applicationSetup.n3 ]
|
||||||
|
then
|
||||||
|
echo "Copying example.applicationSetup.n3 to /usr/local/vivo/home/config/applicationSetup.n3"
|
||||||
|
cp /usr/local/vivo/home/config/example.applicationSetup.n3 /usr/local/vivo/home/config/applicationSetup.n3
|
||||||
|
else
|
||||||
|
echo "Using existing /usr/local/vivo/home/config/applicationSetup.n3"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
catalina.sh run
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
if [ -z "$1" ]
|
if [ -z "$1" ]
|
||||||
then
|
then
|
||||||
echo 'New version number required eg. 1.9.0-rc1'
|
echo 'New version number required eg. 1.12.0-RC1'
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -7,13 +7,13 @@
|
||||||
|
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-webapp</artifactId>
|
<artifactId>vivo-webapp</artifactId>
|
||||||
<version>1.11.2-SNAPSHOT</version>
|
<version>1.12.1-SNAPSHOT</version>
|
||||||
<packaging>war</packaging>
|
<packaging>war</packaging>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-project</artifactId>
|
<artifactId>vivo-project</artifactId>
|
||||||
<version>1.11.2-SNAPSHOT</version>
|
<version>1.12.1-SNAPSHOT</version>
|
||||||
<relativePath>..</relativePath>
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.vivoweb</groupId>
|
<groupId>org.vivoweb</groupId>
|
||||||
<artifactId>vivo-api</artifactId>
|
<artifactId>vivo-api</artifactId>
|
||||||
<version>1.11.2-SNAPSHOT</version>
|
<version>1.12.1-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|
27
webapp/src/main/webapp/WEB-INF/resources/shortview_config.n3
Normal file
27
webapp/src/main/webapp/WEB-INF/resources/shortview_config.n3
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
@prefix ts_: <https://litvinovg.pro/text_structures#> .
|
||||||
|
@prefix display: <http://vitro.mannlib.cornell.edu/ontologies/display/1.1#> .
|
||||||
|
@prefix mydomain: <http://vivo.mydomain.edu/individual/> .
|
||||||
|
|
||||||
|
ts_:elenphExcerpt display:hasCustomView mydomain:elenphExcerptShortView .
|
||||||
|
|
||||||
|
mydomain:elenphExcerptShortView
|
||||||
|
a display:customViewForIndividual ;
|
||||||
|
display:appliesToContext "SEARCH" ;
|
||||||
|
display:hasTemplate "elenphExcerptShortView.ftl" ;
|
||||||
|
display:hasDataGetter mydomain:elenphExcerptShortViewDataGetter .
|
||||||
|
|
||||||
|
mydomain:elenphExcerptShortViewDataGetter
|
||||||
|
a <java:edu.cornell.mannlib.vitro.webapp.utils.dataGetter.SparqlQueryDataGetter>;
|
||||||
|
display:saveToVar "excerptInfo";
|
||||||
|
display:query
|
||||||
|
"""
|
||||||
|
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
|
||||||
|
PREFIX vivo: <http://vivoweb.org/ontology/core#>
|
||||||
|
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
|
||||||
|
PREFIX ts_: <https://litvinovg.pro/text_structures#>
|
||||||
|
SELECT ?property ?value
|
||||||
|
WHERE {
|
||||||
|
?individualUri ?property ?value .
|
||||||
|
?individualUri rdf:type ts_:elenphExcerpt .
|
||||||
|
}
|
||||||
|
""" .
|
|
@ -5,6 +5,10 @@
|
||||||
# https://sourceforge.net/apps/mediawiki/vivo/index.php?title=The_StartupManager
|
# https://sourceforge.net/apps/mediawiki/vivo/index.php?title=The_StartupManager
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# This listener must be run before any other code that uses resource bundles,
|
||||||
|
# otherwise there will be problems with i18n-support.
|
||||||
|
org.vivoweb.webapp.startup.i18nSetup
|
||||||
|
|
||||||
edu.cornell.mannlib.vitro.webapp.servlet.setup.JvmSmokeTests
|
edu.cornell.mannlib.vitro.webapp.servlet.setup.JvmSmokeTests
|
||||||
|
|
||||||
edu.cornell.mannlib.vitro.webapp.application.ApplicationSetup
|
edu.cornell.mannlib.vitro.webapp.application.ApplicationSetup
|
||||||
|
@ -21,6 +25,9 @@ edu.cornell.mannlib.vitro.webapp.config.RevisionInfoSetup
|
||||||
|
|
||||||
edu.cornell.mannlib.vitro.webapp.email.FreemarkerEmailFactory$Setup
|
edu.cornell.mannlib.vitro.webapp.email.FreemarkerEmailFactory$Setup
|
||||||
|
|
||||||
|
# For multiple language support
|
||||||
|
edu.cornell.mannlib.vitro.webapp.i18n.selection.LocaleSelectionSetup
|
||||||
|
|
||||||
edu.cornell.mannlib.vitro.webapp.servlet.setup.ConfigurationModelsSetup
|
edu.cornell.mannlib.vitro.webapp.servlet.setup.ConfigurationModelsSetup
|
||||||
edu.cornell.mannlib.vitro.webapp.servlet.setup.ContentModelSetup
|
edu.cornell.mannlib.vitro.webapp.servlet.setup.ContentModelSetup
|
||||||
|
|
||||||
|
@ -67,9 +74,6 @@ org.vivoweb.webapp.startup.SearchResultTemplateModelSetup
|
||||||
|
|
||||||
edu.ucsf.vitro.opensocial.OpenSocialSmokeTests
|
edu.ucsf.vitro.opensocial.OpenSocialSmokeTests
|
||||||
|
|
||||||
# For multiple language support
|
|
||||||
edu.cornell.mannlib.vitro.webapp.i18n.selection.LocaleSelectionSetup
|
|
||||||
|
|
||||||
# The search indexer uses a "public" permission, so the PropertyRestrictionPolicyHelper
|
# The search indexer uses a "public" permission, so the PropertyRestrictionPolicyHelper
|
||||||
# and the PermissionRegistry must already be set up.
|
# and the PermissionRegistry must already be set up.
|
||||||
edu.cornell.mannlib.vitro.webapp.searchindex.SearchIndexerSetup
|
edu.cornell.mannlib.vitro.webapp.searchindex.SearchIndexerSetup
|
||||||
|
@ -91,5 +95,3 @@ edu.cornell.mannlib.vitro.webapp.controller.individual.VIVOIndividualResponseBui
|
||||||
|
|
||||||
# This should be near the end, because it will issue a warning if the connection to the SearchEngine times out.
|
# This should be near the end, because it will issue a warning if the connection to the SearchEngine times out.
|
||||||
edu.cornell.mannlib.vitro.webapp.servlet.setup.SearchEngineSmokeTest
|
edu.cornell.mannlib.vitro.webapp.servlet.setup.SearchEngineSmokeTest
|
||||||
|
|
||||||
org.vivoweb.webapp.startup.i18nSetup
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
||||||
|
|
||||||
<!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
|
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations -->
|
||||||
|
|
||||||
<list-view-config>
|
<list-view-config>
|
||||||
<query-select>
|
<query-select>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
||||||
|
|
||||||
<!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
|
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations -->
|
||||||
|
|
||||||
<list-view-config>
|
<list-view-config>
|
||||||
<query-select>
|
<query-select>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
||||||
|
|
||||||
<!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
|
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations -->
|
||||||
|
|
||||||
<list-view-config>
|
<list-view-config>
|
||||||
<query-select>
|
<query-select>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
||||||
|
|
||||||
<!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
|
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations -->
|
||||||
|
|
||||||
<list-view-config>
|
<list-view-config>
|
||||||
<query-select>
|
<query-select>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
||||||
|
|
||||||
<!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
|
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations -->
|
||||||
|
|
||||||
<list-view-config>
|
<list-view-config>
|
||||||
<query-select>
|
<query-select>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
||||||
|
|
||||||
<!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
|
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations -->
|
||||||
|
|
||||||
<list-view-config>
|
<list-view-config>
|
||||||
<query-select>
|
<query-select>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
||||||
|
|
||||||
<!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
|
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations -->
|
||||||
|
|
||||||
<list-view-config>
|
<list-view-config>
|
||||||
<query-select>
|
<query-select>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
||||||
|
|
||||||
<!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
|
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations -->
|
||||||
|
|
||||||
<list-view-config>
|
<list-view-config>
|
||||||
<query-select>
|
<query-select>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
<!-- VIVO-specific default list view config file for object properties
|
<!-- VIVO-specific default list view config file for object properties
|
||||||
|
|
||||||
See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
|
See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations -->
|
||||||
|
|
||||||
<list-view-config>
|
<list-view-config>
|
||||||
<query-select>
|
<query-select>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||||
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
<!-- $This file is distributed under the terms of the license in LICENSE$ -->
|
||||||
|
|
||||||
<!-- See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
|
<!-- See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations -->
|
||||||
|
|
||||||
<list-view-config>
|
<list-view-config>
|
||||||
<query-select>
|
<query-select>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
<!-- VIVO-specific default list view config file for object properties
|
<!-- VIVO-specific default list view config file for object properties
|
||||||
|
|
||||||
See guidelines at https://wiki.duraspace.org/x/eYXVAw -->
|
See guidelines at https://wiki.lyrasis.org/display/VIVODOC112x/Custom+List+View+Configurations -->
|
||||||
|
|
||||||
<list-view-config>
|
<list-view-config>
|
||||||
<query-select>
|
<query-select>
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue