Skip to content

Commit fbcf526

Browse files
committed
Merge 10.0.0 from develop
2 parents 1ddffc9 + 9268323 commit fbcf526

22 files changed

+1719
-1039
lines changed

.github/workflows/validate.yaml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Validate gist Ontology
2+
3+
on: [push]
4+
5+
jobs:
6+
build:
7+
8+
runs-on: ubuntu-latest
9+
10+
steps:
11+
- uses: actions/checkout@v2
12+
- name: Set up Python
13+
uses: actions/setup-python@v2
14+
with:
15+
python-version: 3.8
16+
- name: Install onto-tool
17+
run: |
18+
python -m pip install --upgrade pip
19+
pip install onto-tool
20+
- name: Build distribution
21+
run: |
22+
onto_tool bundle bundle.yaml

bundle.yaml

+29-1
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,23 @@ actions:
6363
source: "{input}"
6464
includes:
6565
- gistCore.ttl
66+
- gistMediaTypes.ttl
6667
- gistValidationAnnotations.ttl
6768
shapes:
6869
source: "{input}/ontologyShapes.ttl"
70+
- action: "verify"
71+
message: "Verify ontology via queries."
72+
type: "construct"
73+
inference: "none"
74+
source: "{input}"
75+
includes:
76+
- gistCore.ttl
77+
stopOnFail: false
78+
target: '{input}/validation'
79+
queries:
80+
source: '{input}/validation_queries'
81+
includes:
82+
- '*_construct.rq'
6983
- action: "mkdir"
7084
directory: "{output}"
7185
- action: "copy"
@@ -80,6 +94,7 @@ actions:
8094
to: "\\g<1>{version}.ttl"
8195
includes:
8296
- gistCore.ttl
97+
- gistMediaTypes.ttl
8398
- gistDeprecated.ttl
8499
- action: "definedBy"
85100
message: "Adding rdfs:definedBy."
@@ -148,14 +163,27 @@ actions:
148163
source: "{input}/LICENSE.txt"
149164
target: "{output}"
150165
- action: "copy"
166+
message: "Copying migration queries and scripts."
167+
source: "{input}/migration"
168+
target: "{output}/migration"
169+
- action: "copy"
170+
message: "Copying documentation and patching local links."
151171
source: "{input}/docs"
152172
target: "{output}/Documentation"
173+
replace:
174+
from: "\\(./(\\w+)\\.md\\)"
175+
to: "(./\\g<1>.html)"
153176
includes:
154177
- "ReleaseNotes.md"
178+
- "MajorVersionMigration.md"
155179
- action: "markdown"
156180
message: "Formatting release notes."
157-
source: "{input}/docs/ReleaseNotes.md"
181+
source: "{output}/Documentation/ReleaseNotes.md"
158182
target: "{output}/Documentation/ReleaseNotes.html"
183+
- action: "markdown"
184+
message: "Formatting migration instructions."
185+
source: "{output}/Documentation/MajorVersionMigration.md"
186+
target: "{output}/Documentation/MajorVersionMigration.html"
159187
- action: "move"
160188
message: "Creating Deprecated folder."
161189
source: "{output}"

docs/ChangeAndReleaseManagement.md

+18-10
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,30 @@ Workflow: Implementation, Pull Requests, and Merges
2828
Versions and Version Numbering
2929
-----
3030

31-
Version numbers are of the form X.x.x (major.minor.patch). We follow [Semantic Versioning 2.0.0](https://semver.org/): as a guideline, but adjust as needed.
31+
Version numbers are of the form `X.x.x` (major.minor.patch). We follow [Semantic Versioning 2.0.0](https://semver.org/): as a guideline, but adjust as needed.
3232

3333
- **Major:** Non-backward-compatible (i.e., reasoning produces different results).
3434
- Examples: adding a restriction, domain, range.
35+
- Major changes should have a significant impact aside from technically modifying inferencing, if the latter is low-impact. For example, changing an equivalent class assertion pointing to a union class to a subclass axiom in order to allow new subclasses to be defined is not a major change.
3536

36-
- **Minor:** New, backward-compatible functionality. May constitute a large change to the ontology, such as addition of a new module.
37-
- Examples: adding a class or property; removing a restriction.
37+
- **Minor:** New, backward-compatible functionality. Includes _any_ addition to the ontology, even annotation properties. May constitute a large change to the ontology, such as addition of a new module.
38+
- Examples: adding a class or property; removing a restriction; adding annotation property `domainIncludes`; deprecation of a term (see following section Deprecation and Deletion Policy).
3839

39-
- **Patch:** No new functionality except for bug fixes.
40-
- Examples: Fixing a typo in an annotation, changing a property that was incorrectly defined as inverse functional rather than functional.
41-
42-
Additional notes:
40+
- **Patch:** No new functionality other than bug fixes.
41+
- Correction of an error, even if not backward-compatible, does not require a major release. The expectation is that users will not have implemented against an obvious error. This would be a patch.
42+
- Examples: Fixing a typo in an annotation; changing a property that was incorrectly defined as inverse functional rather than functional.
43+
44+
Deprecation and Deletion Policy
45+
-----
4346

44-
- Correction of an error, even if not backward-compatible, does not require a major release. The expectation is that users will not have implemented against an obvious error. This would be a patch.
45-
- When a local name is altered, the original term is deprecated to make it a minor rather than major change. The deprecated term receives an `owl:equivalentClass` or `owl:equivalentProperty` assertion to the new term. Deprecated terms may be removed in a future major release. Deprecated terms reside in the `gistDeprecated.ttl` file. If a user wants to use a deprecated term, he/she should import this file into his/her ontology, which in turn imports `gistCore.ttl` and thus all of gist.
46-
- Major changes should have a significant impact aside from technically modifying inferencing if this is low-impact. E.g., when an equivalent class axiom to a union class is changed to a subclass axiom in order to allow new subclasses to be defined.
47+
- Terms to be removed, including changing a local name (which constitutes a removal plus an addition), enter a deprecation-deletion cycle.
48+
- Deletion is a major change. If the next release is not a major release, terms must be deprecated rather than deleted.
49+
- Deprecation is a minor change, since the deprecated term is still available for use. A patch release may not contain deprecations.
50+
- Existing use of deprecated terms can be maintained, but users should not create new references to these terms. Rather, they should future-proof by using the new term, if there is one.
51+
- Exception to deprecation: if the original term is referenced by other term definitions, as in a domain or range axiom, such that a change to that reference constitutes a major change, the term cannot be deprecated in a minor release. The change or removal must wait until the next major release, when the references to it can also be modified or removed.
52+
- A deprecated term receives an `owl:deprecated` true assertion, and an `owl:equivalentClass` or `owl:equivalentProperty` assertion pointing to the new term.
53+
- Deprecated terms are moved to the `gistDeprecated.ttl` file. To use a deprecated term, this file should be imported into the ontology. The deprecation file imports the rest of gist.
54+
- A major release contains no deprecations. That is, all currently deprecated terms are deleted, and any other terms will be directly deleted rather than deprecated first.
4755

4856
Releases
4957
-----

docs/MajorVersionMigration.md

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Major Version Migration
2+
3+
When non-backward compatible changes are introduced into `gist` during major upgrades,
4+
the release package will include queries to facilitate the migration of existing ontologies
5+
and data to conform to the new version of `gist`.
6+
7+
For changes that are not amenable to automatic migration, queries will be provided that
8+
report the use of deleted or modified classes and properties so that mitigation measures
9+
can be initiated.
10+
11+
Every major version of `gist` (starting with 10.0.0) will add a sub-directory under the
12+
`migration` directory containing the queries and two migration scripts:
13+
14+
1. `migrate_local.yaml`, intended to apply changes to locally stored RDF data, and
15+
2. `migrate_endpoint.yaml`, which is used to modify RDF data in a triple store
16+
17+
The migration scripts rely on the [Ontology Toolkit](https://pypi.org/project/onto-tool/), which is a
18+
Python-based open source tool provided by Semantic Arts. It requires Python version 3.8 or greater
19+
to be installed.
20+
21+
## Migrating RDF Data in Local Files
22+
23+
Once you have the Ontology Toolkit installed, issue the following command from the directory where
24+
you cloned [gist](https://github.com/semanticarts/gist):
25+
```shell
26+
onto_tool bundle -v input INPUT-DIR
27+
-v output OUTPUT-DIR
28+
-v report REPORT-DIR migration/v10.0/migrate_local.yaml
29+
```
30+
where _INPUT-DIR_ is the directory in which your RDF data is located, _OUTPUT-DIR_ is the directory where
31+
updated RDF should be written, and REPORT-DIR is a directory where reports regarding any issues found
32+
during migration are stored. The tool will also list the issues during execution. Output and report
33+
directories will be created as needed, but any existing files in them will be overwritten.
34+
35+
Note that only `.ttl` (Turtle) and `.owl` (RDF/XML) files in the _INPUT-DIR_ are transformed - no
36+
subdirectories are traversed, and those would require additional tool invocations.
37+
38+
## Migrating Data in a Triple Store
39+
40+
Once you have the Ontology Toolkit installed, issue the following command from the directory where
41+
you cloned [gist](https://github.com/semanticarts/gist):
42+
```shell
43+
onto_tool bundle -v user USER -v password PWD
44+
-v endpoint ENDPOINT-URI
45+
[ -v update_endpoint UPDATE-URI ]
46+
-v report REPORT-DIR migration/v10.0/migrate_endpoint.yaml
47+
```
48+
where _ENDPOINT-URI_ is the address of your SPARQL endpoint, and _USER_ and _PWD_ are the credentials
49+
required to access it. Only Basic HTTP authentication is handled at this time. If your triple store has
50+
a separate endpoint for UPDATE queries (e.g. Stardog), provide it as _UPDATE-URI_. Reports regarding any
51+
issues found during migration are stored in _REPORT-DIR_. Report directory will be created as needed,
52+
but any existing files in it will be overwritten.

docs/ReleaseNotes.md

+57-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,56 @@
11
gist Release Notes
22
=====
33

4+
Release 10.0.0
5+
-----
6+
7+
This is a major release, which includes several changes which break compatibility with previous versions
8+
of `gist`. See the [migration guide](./MajorVersionMigration.md) for documentation on updating existing
9+
`gist`-based ontologies and instance data.
10+
11+
### Major Updates
12+
13+
- Renamed 62 object and datatype properties to reflect newly-established conventions. Includes corresponding updates to the [gist style guide](https://github.com/semanticarts/gist/blob/master/docs/gistStyleGuide.md). Issues [188](https://github.com/semanticarts/gist/issues/188), [507](https://github.com/semanticarts/gist/issues/507).
14+
- Renamed `MimeType` to `MediaType` to be consistent with [IANA guidelines](https://www.iana.org/assignments/media-types/media-types.xhtml).
15+
and [RFC6838](https://tools.ietf.org/html/rfc6838). Issue [#434](<https://github.com/semanticarts/gist/issues/434>).
16+
- Renamed `gist:decimalValue` to `gist:numericValue` and expanded property range to include all numeric data types.
17+
supported by OWL. Issue [#171](<https://github.com/semanticarts/gist/issues/171>).
18+
- Refactored ordered collection model. Issues [#112](<https://github.com/semanticarts/gist/issues/112>), [#540](<https://github.com/semanticarts/gist/issues/540>).
19+
- Added predicate `gist:providesOrderFor`.
20+
- Deleted classes `gist:OrdinalCollection` and `gist:OrdinalMember`.
21+
- Changes to and affecting `gist:Person`, as per issue [#136](https://github.com/semanticarts/gist/issues/136):
22+
- Removed `owl:someValuesFrom gist:name` restriction from `gist:Person`.
23+
- Made `gist:hasBirthDate` a subproperty of `gist:hasStart` rather than `gist:hasActualStart`.
24+
- Refactored the way network connections are modeled per issue [#126](<https://github.com/semanticarts/gist/issues/126>):
25+
- `networkConnection`, `hasFromNode` and `hasToNode` have been renamed to `links`, `linksFrom` and `linksTo`, respectively.
26+
- Added a restriction on `NetworkLink` that it must have exactly 2 links.
27+
- Added restrictions on `NetworkLink` and `NetworkNode` that they must be `isMemberOf` a `Network`.
28+
- Extended the range of `comesFromPlace`/`goesToPlace` to include `gist:Address` in addition to `gist:Place`.
29+
Issue [#392](<https://github.com/semanticarts/gist/issues/392>).
30+
- Modified classes and properties related to street addresses as per issue [#483](<https://github.com/semanticarts/gist/issues/483>):
31+
- Removed `BuildingAddress`.
32+
- Added `StreetAddress` as subclass of `PostalAddress`.
33+
- Replaced `hasStreetAddress` with the more general `hasAddress`. Removed `streetAddressOf`.
34+
- Removed `communicationAddressOf` in a general effort to trim unused inverse properties.
35+
- Clarified the definition of `hasCommunicationAddress` (now a subproperty of `hasAddress`),
36+
added domain (`Person U Organization`).
37+
38+
### Minor Updates
39+
40+
- Added annotation properties which provide usage guidance for properties without the constraints imposed by `rdfs:range` and `rdfs:domain`: Issue [#389](https://github.com/semanticarts/gist/issues/389).
41+
- `domainIncludes`
42+
- `rangeIncludes`
43+
- Created a `gistMediaTypes` ontology to declare `MediaType` instances relevant to semantic applications.
44+
Issue [#463](<https://github.com/semanticarts/gist/issues/463>).
45+
46+
### Patch Updates
47+
48+
- Updated annotations for `isBasedOn` and `isBasisFor` properties. Issue [#139](https://github.com/semanticarts/gist/issues/139)
49+
- `hasDirectSubCategory` is now a subproperty of `hasSubCategory`, as it was always supposed to be. Issue [#481](https://github.com/semanticarts/gist/issues/481).
50+
- Clarified the definition of `ContemporaneousEvent`. Issue [#174](<https://github.com/semanticarts/gist/issues/174>).
51+
52+
Import URL: <https://ontologies.semanticarts.com/o/gistCore10.0.0>.
53+
454
Release 9.7.0
555
-----
656

@@ -11,7 +61,7 @@ Release 9.7.0
1161
### Patch Updates
1262

1363
- Updated annotations for the following properties regarding the hasDirectX/hasX pattern. Issue [#115](https://github.com/semanticarts/gist/issues/115)
14-
- `geoContains`, `geoContainedIn`
64+
- `geoContains`, `geoContainedIn`
1565
- `directPartOf`,`hasDirectPart`
1666
- `directlyPrecededBy`, `directlyPrecedes`
1767
- Declare `gist:identifies` as `owl:FunctionalProperty` rather than `owl:InverseFunctionalProperty` (bug fix). Issue [#180](https://github.com/semanticarts/gist/issues/180).
@@ -27,11 +77,11 @@ Release 9.6.0
2777
- Refactored `hasParty`, `giver` and `getter`. Issue [#133](https://github.com/semanticarts/gist/issues/133).
2878
- `giver` and `getter`
2979
- Renamed to `hasGiver` and `hasGetter`
30-
- The newly named versions are no longer subproperties of `hasParty`
80+
- The newly named versions are no longer sub-properties of `hasParty`
3181
- Deprecated `giver` and `getter`
3282
- New property: `hasParticipant`
3383
- No domain or range
34-
- Has subproperties: `hasGiver`, `hasGetter`, `hasParty`, `fromAgent` and `toAgent`
84+
- Has sub-properties: `hasGiver`, `hasGetter`, `hasParty`, `fromAgent` and `toAgent`
3585
- Added a `skos:scopeNote` to `fromAgent`
3686
- Added a `skos:example` to `hasParty`
3787
- Updated `skos:definition`s for `toAgent` and `fromAgent`
@@ -75,7 +125,7 @@ Release 9.4.0
75125
### Minor Updates
76126

77127
- Replaced the union class equivalences in the definitions of `gist:Artifact` and `gist:Place` with subclass assertions from each of the union class members. Issues [#110](https://github.com/semanticarts/gist/issues/110), [#343](https://github.com/semanticarts/gist/issues/343).
78-
- Made changes to `Category` predicates: added intransitive properties `gist:hasDirectSubCategory` and `gist:hasDirectSuperCategory` as subproperties of `gist:hasSubCategory` and `gist:hasSuperCategory`, respectively, and made the latter transitive. Issues [#104](https://github.com/semanticarts/gist/issues/104), [#107](https://github.com/semanticarts/gist/issues/107).
128+
- Made changes to `Category` predicates: added intransitive properties `gist:hasDirectSubCategory` and `gist:hasDirectSuperCategory` as sub-properties of `gist:hasSubCategory` and `gist:hasSuperCategory`, respectively, and made the latter transitive. Issues [#104](https://github.com/semanticarts/gist/issues/104), [#107](https://github.com/semanticarts/gist/issues/107).
79129
- Replaced `gist:Weight` with `gist:Mass` in all contexts. Issue [#105](https://github.com/semanticarts/gist/issues/105).
80130

81131
### Patch Updates
@@ -134,7 +184,7 @@ Release 9.0
134184

135185
### Miscellaneous
136186

137-
- The `gist` namespace has been modfied from `http:` to `https:`.
187+
- The `gist` namespace has been modified from `http:` to `https:`.
138188
- Added comments to ontologies.
139189
- Added labels and comments to many properties and classes.
140190
- `SocialBeing` has been removed.
@@ -257,7 +307,7 @@ Release 7.3
257307
- removal of redundant imports and redundant classes already defined in another ontology
258308
- relaxed the domain on gist:start and gist:end
259309
- expanded the range of gist:fromAgent and gist:toAgent
260-
- added to the Units of Measure ontology and corrected an erronoeously named class
310+
- added to the Units of Measure ontology and corrected an erroneously named class
261311

262312
See ChangeLog in pdf file for full details of changes.
263313

@@ -291,7 +341,7 @@ Primarily fixes minor errors like typos in our gist 7.0 release.
291341

292342
Below is a brief summary of the changes that have semantic import from an inference perspective (axiom added, removed, changed, etc.) or that are backward incompatible.
293343

294-
- Made `gist:uniqueText` a sub-property of `gist:containedText`.
344+
- Made `gist:uniqueText` a subproperty of `gist:containedText`.
295345
- Added `gist:Agreement` to range of `gist:governs`.
296346
- Changed `gist:prevent`, `gist:allow` and `gist:require` to `gist:prevents`, `gist:allows`, and `gist:requires`.
297347
- Changed restriction on `gist:Offer` to use `gist:hasDirectPart some gist:CatalogItem`.

0 commit comments

Comments
 (0)