forked from linkml/owlstar
-
Notifications
You must be signed in to change notification settings - Fork 0
/
owlstar.ttl
122 lines (104 loc) · 6.66 KB
/
owlstar.ttl
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
@prefix os: <http://w3id.org/owlstar/> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@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 skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xml: <http://www.w3.org/XML/1998/namespace> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
os: a owl:Ontology ;
rdfs:label "OWLStar"@en ;
owl:versionInfo "1.0" ;
dcterms:license "https://creativecommons.org/publicdomain/zero/1.0/" ;
dc:creator "Chriis Mungall"@en ;
dcterms:creator <https://orcid.org/0000-0002-6601-2165> ;
rdfs:seeAlso <https://douroucouli.wordpress.com/2019/07/11/proposed-strategy-for-semantics-in-rdf-and-property-graphs/> ;
dcterms:created "2020-05-01"^^xsd:date ;
dc:description """
A vocabulary of terms that can be used provide semantic interpretations of property graphs (PGs). PGs are assumed to be encoded using RDF with reification used for edge properties.
We use RDF* as syntactic sugar for reification.
Note we do NOT assume RDF semantics. The PG/RDF* is used only for structure. Semantics are provided by the terms in this vocabulary.
""" .
os:example a owl:AnnotationProperty ;
rdfs:label "example"@en ;
rdfs:comment "An example of an owlstar mapping" .
os:owlMapping a owl:AnnotationProperty ;
rdfs:label "owl mapping"@en ;
rdfs:comment """
An owlstar mapping from an RDF* structure to an OWL axiom encoded using the standard OWL to RDF mapping.
The syntax is SOURCE -> TARGET, where SOURCE is RDF* turtle syntax, and TARGET is RDF syntax.
The mapping can thus be easily converted to a SPARQL construct.
""" .
os:folMapping a owl:AnnotationProperty ;
rdfs:label "for mapping"@en ;
rdfs:comment "An owlstar mapping from an RDF* structure to an FOL axiom. TBD: Prover9 syntax vs CL" .
os:statementModifier a rdf:Property ;
rdfs:label "statement modifier"@en ;
rdfs:comment "a property on a statement that induces a semantic interpretation of that statement";
rdfs:domain rdf:Statement .
os:interpretation rdfs:subPropertyOf os:statementModifier ;
rdfs:label "logical interpretation modifier"@en ;
rdfs:comment "";
rdfs:domain rdf:Statement ;
rdfs:range os:StatementInterpretationModifier .
os:context rdfs:subPropertyOf os:statementModifier ;
rdfs:label "has context"@en ;
rdfs:comment """
maps a statement to a context in which the statement is true. An example of a context is a temporal instant or duration.
TODO decide on mapping.
One option is to use IKL: <<S>> os:context c -> (context (that S) c)
Another is to add additional argument: <<s p o>> os:context c -> p(s,o,t)
""";
rdfs:domain rdf:Statement ;
rdfs:range os:StatementInterpretationModifier .
os:probability rdfs:subPropertyOf os:statementModifier ;
rdfs:label "probability"@en ;
rdfs:comment "maps a statement to a probability in which the statement is true." ;
rdfs:domain rdf:Statement ;
rdfs:range xsd:number ;
os:folMapping "<<?s ?p ?o>> os:probability ?pr -> (probability (that (?p ?s ?o)) ?pr".
os:frequentistProbability rdfs:subPropertyOf os:statementModifier ;
rdfs:label "frequentist probability"@en ;
rdfs:comment "maps a statement to a frequentist probability, i.e. the probability of an event (i.e. the statement) as the limit of the relative frequency in many trials (i.e. the knowledge graph from which the statement is extracted)." ;
rdfs:domain rdf:Statement ;
rdfs:range xsd:number ;
os:folMapping "<<?s ?p ?o>> os:frequentistProbability ?pr -> (frequentist probability (that (?p ?s ?o)) ?pr".
os:LogicalInterpretation a owl:Class ;
rdfs:label "logical interpretation modifier"@en ;
rdfs:comment "grouping" .
os:AllSomeInterpretation rdfs:subClassOf os:LogicalInterpretation ;
rdfs:label "all-some interpretation modifier"@en ;
rdfs:comment "A modifier on a triple that causes the triple to be interpreted as an all-some statement" ;
os:example "<<finger part-of hand>> os:interpretation os:AllSomeInterpretation -> finger rdfs:subClassOf [a owl:Restriction ; owl:onProperty part-of ; owl:someValuesFrom hand]" ;
os:owlMapping "<<?s ?p ?o>> os:interpretation os:AllSomeInterpretation -> ?s rdfs:subClassOf [a owl:Restriction ; owl:onProperty ?p ; owl:someValuesFrom ?o]" .
os:AllOnlyInterpretation rdfs:subClassOf os:LogicalInterpretation ;
rdfs:label "all-only interpretation modifier"@en ;
rdfs:comment "A modifier on a triple that causes the triple to be interpreted as an all-only statement" ;
os:example "<<person friend-of person>> os:interpretation os:AllOnlyInterpretation -> finger rdfs:subClassOf [a owl:Restriction ; owl:onProperty part-of ; owl:allValuesFrom hand]" ;
os:owlMapping "<<?s ?p ?o>> os:interpretation os:AllOnlyInterpretation -> ?s rdfs:subClassOf [a owl:Restriction ; owl:onProperty ?p ; owl:allValuesFrom ?o]" .
os:AllNumberInterpretation rdfs:subClassOf os:LogicalInterpretation ;
rdfs:label "all-number interpretation modifier"@en ;
rdfs:comment """
A modifier on a triple that causes the triple to be interpreted as an OWL QCR.
Note: we may want to exclude the maxCardinality=0 scenario here as
this results in an unintuitive graph.
""" ;
os:example """
<<hand has-part finger>> os:interpretation os:AllNumberInterpretation ; os:min 5 ; os:max 5 ->
hand rdfs:subClassOf [a owl:Restriction ; owl:onProperty part-of ; owl:cardinality 5]
""" ;
os:owlMapping "<<?s ?p ?o>> os:interpretation os:AllNumberInterpretation -> todo " .
os:SomeSomeInterpretation rdfs:subClassOf os:LogicalInterpretation ;
rdfs:label "some-some interpretation modifier"@en ;
rdfs:comment "A modifier on a triple that causes the triple to be interpreted as a some-some statement" ;
os:example "<<HumanShhProtein involved-in HeartDevelopment>> os:interpretation os:SomeSomeInterpretation -> [a HumanShhProtein] involved-in [a HeartDevelopment]" ;
os:owlMapping "<<?s ?p ?o>> os:interpretation os:SomeSomeInterpretation -> [a ?s] ?p [a ?o]" .
os:AllSomeAllTimesInterpretation rdfs:subClassOf os:LogicalInterpretation ;
rdfs:label "all-some all-times interpretation modifier"@en ;
rdfs:comment "A modifier on a triple that causes the triple to be interpreted as an all-some statement holding for all times at which the subject exists" ;
os:example """
<<nucleus part-of cell>> os:interpretation os:AllSomeAllTimesInterpretation ->
all i, t: <<i a nucleus>> os:context t -> exists j: <<j a cell>> os:context t, <<i part-of j>> os:context t
""" ;
os:folMapping "<<?s ?p ?o>> os:interpretation os:AllSomeAllTimesInterpretation -> all i,t : <<i a ?s>> os:context t -> exists j: <<j a ?o>> os:context t, <<i p j>> os:context t" .