What happens if Charlie uses a non-standard
reasoner?
Why Deviate
Easier implementation
Faster reasoning
No sufficiently expressive standard (more
information!)
No elegant solution using standard
Local conventions (firstname is givenName)
Subsets
Why?
Easier, Smaller, Faster, Simpler
Charlie can use some fast bit of code that does only subclassOf
What?
Fewer entailments and inconsistencies found
Charlie will miss some entailments, wont notice some inconsistencies
Result:
Charlie might miss Alice's item
But his faster reasoner might find others!
It's like deciding whether to consider other search results
When to Subset
Okay if data is already incomplete
Good if resources better used elsewhere
Not okay to present as complete
Not okay if negated
If no one is selling an MP3Player, then...
Supersets
What:
More entailments and more graphs defined to be inconsistent
Charlie will get more information, catch more "errors"
More information is good, right?
Only if it's right.
Beware unwarranted assumptions
Superset Exampls
Some possible supersets:
Items described in Apple namespace are inferred to be
of type apple:Product
Because apple:memorySize has range apple:iPod, Alice'
data is considered inconsistent for not providing a
memorySize
Because Alice lists between 100 and 10,000 items for
sale, Alice is classified as MidSizeVendor
Because Alice is selling an iPod, and she probably wont remember to erase her music from it, and copying music is illegal, Alice is classified as a Criminal.
So when are superset semantics okay?
Safe Supersets
Did the source say that?
Did the source mean to imply that?
Or was it just something you inferred, on your own?
Safety is in how you present results:
Alice is a Criminal.
According to the Evil-Music-Consortium definitions, Alice is a Criminal.
Sorry, I didn't mean to imply you were a criminal...
The hard part: what was or was not implied?
Does this...
Imply this?
:x rdf:type :A. :A rdfs:subclassOf :B
:x rdf:type :B.
Does this...
Imply this?
:z foaf:name "Sandro Hawke".
:z foaf:firstName "Sandro".
If the shoe fits
PROPOSED: If you use the URI (in the right graph pattern), you're
endorsing use of the published semantics.
Use "extensible semantics"; never make that ambiguous or contradictory.
Any additional semantics must be triggered by use, by the
author, of additional syntax
Example: OWL 2
If DL graph pattern, then use either semantics (they're the same)
If not DL graph, then use RDF-Based Semantics
Okay for W3C Recommendations, but what about for all semantics
with a web page?
Part 4: Some Ideas for Standards
class and property dereferencing
importing RIF
reasoner negotiation
downloading
PCID
Property and Class Identifier Dereferencing (PCID)
Recursively dereference every RDF class and property IRI,
and merge the results.
More limited than dereferencing
all term IRIs; typically small
Looks like another entailment regime to me
TimBL's been suggesting this for years
I think it'll work well....
RIF
RIF meant to be used with RDF, but import from RDF
use owl:import? use PCID?
Additional RIF dialects, FOPL, LP, ....
Reasoner Negotiation
Charlie tells Alice the entailment regimes he'll be using,
so she can skip doing those.
Skip-Inference: OWL-DIRECT
Alice tells Charlie which entailment regimes she has
(completely) used, so he can skip doing those
Did-Inference: OWL-RL
... or put in in the graph, or in a metadata graph.
Downloadable Semantics
Dave wants a lessThan predicate:
{ _:x owl:sameAs 7; _:x dave:lessThan 3. } is
inconsistent, in Dave's semantics
At the dave:lessThan IRI, Dave puts a RIF Core ruleset
which "implements" his semantics
That ruleset, combined with a graph, is inconsistent when
the lessThan relation is violated, and entails all the graphs
for which it holds.
Reasoners doing PCID+RIF_Core will now automatically
implement dave:lessThan
Such reasoners get OWL-RL for free?
Downloadable Plugins
"That's just using RIF Core as a programming language",
you say.
Okay, then: lets also do it for Java bytecode and
Javascript
At dave:lessThan would be links to the appropriate
code
A small number of RDF reasoner plugin APIs would be needed
Maybe also try to download from your reasoner
supplier.
Advice to Users
Data Source Providers SHOULD include all useful
entailments
Data Source Providers MUST publish only consistent data
Data Consumers SHOULD check for consistency across all
included data sources.
Data Consumers SHOULD compute all entailments they'll find
useful.
Reasoners MUST report the semantics they are using
(including whether algorithm is incomplete/unsound)
Entailment Regimes MUST use Extensible Semantics.
Summary
What do you mean, "Semantics"?
A semantics (or a logic, or an ER) is a spec for a set of equivalent reasoners
Intuitively: a (published) collection of inference rules
Why do you want (Standard) Semantics?
Private Use: Better tools for ontologists
Single Source: Save on bandwidth
Multi Source: Emergent, synthesized knowledge
Non-Standard Semantics
Subset are okay if you're incomplete anyway
Use supersets at your own risk
Alice States, Alice Implies, Charlie Infers.
Never define semantics which conflict someone else's