-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathTODO.txt
183 lines (141 loc) · 8.46 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
Priorities from Kristina:
I think such a tool would form a great starting point! As a start I would be happy with the following (by order of importance):
* ro config: configure research object management tool
* ro create: create new research object
* ro add: add files to a research object
* ro ls: list contents of research object
* ro annotate, ro annotations: annotate research object contents
* ro users: sharing research objects
which corresponds very well with your proposal of which functions to tackle initially. The only thing I miss is the sharing part. I think that is something I would like to be able to do quite fast as well. One thing I thought about was logging. Would it be possible to create a log? That would help me backtrack what I actually do with a RO, and in which order I tend to do things.
----
TODO:
Priority for checklist:
* Include Minim prefixes in query
* Check out SPARQL filter problem (see chembox checklist for ChemSpider ID)
* Update MANIFEST.in - I think that may be why some files aren't getting installed via PyPI
Others:
* When creating resource, try to guess or retain media type information
* Update documentation to reflect new link command
* ro show config
* ro create should fail if RO already created
* ro eval checklist
** See: http://www.wf4ever-project.org/wiki/display/docs/Integrity+and+Authenticity+component
** Target specification is very error prone
** Error handling when target not found is poor
* Mechanism to define new SPARQL prefixes in Minim file/model
* Include means to include external resource in a query
* Include means to handle RuleTest in minim creation
* Complete validation of chembox data (with performance enhancements?)
* ro create: create manifest file via rdflib serialization
* Options to return JSON/RDF info for use by other apps?
(done for eval checklist; annotations, list todo)
* Options for RO logging of changes, etc.
* ro annotations does not work for RO accessed by HTTP - login in ro_metadata uses ro_annotation module.
* RO folder support
Technical debt:
- Mop up @@TODOs
- web service return sensible error when RO or minim resource cannot be retrieved
- checklist display should escape tag-brackets in RO title and description
- checklist/constraint selection logic is a bit of a mess. Tidy up and withdraw old logic.
- refactor minim:showmiss handling so that item result can be more than just satisfied T/F; allow the renderer to decide whether to show this as OK, fail or something else. E.g. return pass/fail/miss and select message template accordingly; add "miss" to style options returned.
- remove RDF format parameter when parsing minim (cf. https://jira.man.poznan.pl/jira/browse/WFE-744)
- Check out rdflib sparql query bnode bug - is it fixed?
(It was fixed, but a similar problem with query parameter ordering has been found.)
(Workaround: don't use SELECT *, but name variables explicitly.)
- See also SC47 page - http://www.wf4ever-project.org/wiki/pages/viewpage.action?pageId=3506198
- See also decay detection with checklist ???
- replace sparql prefixes in TrafficLightReports.py
- format guessing: see http://rdflib.readthedocs.org/en/latest/apidocs/rdflib.html#rdflib.util.guess_format
- Minim liveness follows redirection?
- Fix bug in checklist evaluation service with wrong content negotiated type - wrong response if content negotiate for bad type
- Namespace test in checklist eval (cf. qSKOS) - can do with SPARQL 1.1?
----
WONTDO
Technical debt:
- add minim:query_select to minim model & ontology & diagram
* ro users
DONE
Bug in results model. If the same target is evaluated using the same model in the context of two different ROs, with different results, the resulting combined graph is ambiguous. An additional node is needed to create a 3-way satisfaction relation between RO, target, minim. Fix, I think is to introduce a result node to replace ResearchObject, then have link from RO to the result node (or maybe the other way round).
* Generate label for target resource; use in checklists
Technical debt:
- new test cases for evaluation
- ro-manager-test problem: https://jira.man.poznan.pl/jira/browse/WFE-1154 (partial: still doesn't work with PyPI installation. Documentation updated.)
- test with latest rdflib, update dependencies
- try new rdflib SPARQL processor as drop-in for rdfextras
- role of onresource / onresourcetemplate in constraint is unclear (to me!)
-- eliminate these from model as they seem to serve no purpose.
-- Start by removing code in minim.py, then chase through test case failures.
-- Finally, remove from all minim model files.
- refactor minim so that checklist ordering is defined by model, not rules
-- (sort-of done: Minim creator uses bklank node for Requirements, and labels the rules.)
- Update home page of web service; esp links; also link to API description in wf4ever wiki
Display serialization of manifest graph (ro manifest)
* ro eval checklist
** Test that aggregated files actually exist - part of liveness?
/ display serialization of annotation graph
* Refactor sync code to use ro_metadata/ROSRS_Session to access manifest?
* ro config: configure research object management tool
* ro create: create new research object
* ro status: display status of RO
* ro list / ro ls: list contents of research object
* ro annotate, ro annotations: annotate research object contents
* ro add [file]
* ro add [-a] [directory]
* ro eval completeness minim
* Refactor ro_manifest+ro_annotation to be a class creating a manifest object. Revise code accordingly; don't depend on rodir from calling code.
** Define class ro_metadata that reads manifest and encapsulates both the graph and the base URI (done)
** Define relativization method that works with the new class (done)
** Modify ro_command functions to use new class for annotations, not ro_annotation module directly (done)
** Check that modified ro_command works with new RO (done)
** Create ro_metadata methods to replace direct references to ro_manifest functions (addAggregatedResources) (done)
** Remove direct references to ro_manifest in ro_command; use ro_metadata methods, in:
*** ro_command (done)
*** ro_eval_completeness (done)
*** BackgroundSync (recshceduled)
*** TestEvalCompleteness (done)
*** ro_metadata (done)
*** TestROMetadata (done)
* Refactor namespace definitions into separate module (from ro_manifest) (DONE)
* ro annotate (-g|--graph) rdf-resource [ file ] -- use RDF file already present as annotation for the named file. Defaults to annotations for the entire RO.
* Updates evaluation options; forall => exists and liveness tests
* ro annotate/annnotations
** Test use of CURIE as type
** Test use of URI as type
** Check use of remove annotation does not modify file in main RO added with -g
* ro link
* ro links
** Test links shown in RO listing
* Refactor ro_metadata to handle manifest access and updates locally, rather than via ro_annotations.
Also, add logic to cache ro_annotation graph.
(Keep ro_annotations for annotation support methods)
* option to change ro manifest aggregation details - ro modify? ro remove command added.
- read RO from web server
----
Option table
("-a", "--all", help="All, list all files, depends on the context")
("-b", "--ro-base", help="Base of local directory tree used for ROs")
-c
("-d", "--ro-directory", "--ro-uri", help="Directory or URI of Research Object to process (defaults to current directory)")
("-e", "--user-email", help="Email address of research objects owner")
("-f", "--force", help="Force, depends on the context")
("-g", "--graph", help="Name of existing RDF graph used for annotation")
-h --help
("-i", "--ro-identifier", help="Identifier of Research Object (defaults to value based on name)")
-j
-k
-l, "--report-level", help="Reporting level of detail to generate (summary, must, should, may or full)"
-m
("-n", "--user-name", help="Full name of research objects owner")
("-o", "--output", help="Output format to generate: text, rdfxml, turtle")
("-p", "--rosrs-password", help="ROSRS password")
-q
("-r", "--rosrs-uri", help="URI of ROSRS service")
("-s", "--secret", "--hidden", help="display hidden files in listing")
-t
("-u", "--rosrs-username", help="ROSRS username")
("-v", "--verbose", help="display verbose output")
("-w", "--wildcard", "--regexp", help="Interpret annotation target as wildcard/regexp for pattern matching")
-x
-y
-z
( "--debug", help="Display debug/trace output")