Warning:
This wiki has been archived and is now read-only.
ProvNamespaceManagement
The WG decided on #Solution_2.2_Use_owl:import_and_return_full_merge_of_PROV-O_and_all_Notes
Contents
- 1 Intro
- 2 Current Issues
- 2.1 How to handle multiple XML schemas with (same?) namespaces
- 2.2 Which owl should be returned when dereferencing
- 2.3 Proposal 3 Define all terms in a single OWL file
Intro
This page describes the management (and issues around) of the prov namespace.
The namespace is:
Some requirements:
- the namespace should dereference to appropriate serialization based on accept headers. Some examples
- curl -H "Accept:text/html" -L http://www.w3.org/ns/prov#
- curl -H "Accept:application/rdf+xml" -L http://www.w3.org/ns/prov#
- curl -H "Accept:text/turtle" -L http://www.w3.org/ns/prov#
- curl -H "Accept:application/xml" -L http://www.w3.org/ns/prov#
- In the html page returned, we should provide a glossary of terms with appropriate links to the various specifications.
- The html should be embedded with RDFa
Current Issues
How to handle multiple XML schemas with (same?) namespaces
PROV-XML uses the same namespace http://www.w3.org/ns/prov#, and it would be desirable for each extension (like mentionOf, dictionary, etc) to not need a new namespace.
See ProvXMLNamespaces for a discussion of alternative approaches.
Which owl should be returned when dereferencing
- This is ISSUE-440
- At theJuly 5th telco, we discussed two possible solutions described below:
Proposal 1: Merge all owl files into one namespace owl
Here the idea is that each note would maintain a separate owl file. For example sake let's use the following names:
- ProvenanceOntology.owl - the file containing owl definitions of terms in prov-o
- prov-aq.owl - the file containing owl definitions of terms in the paq
- prov-dict.owl - the file containing the owl definitions of terms in prov dictionaries
The proposal would be that this would be merged into a single file
- prov.owl
The single file would contain concatenated sections delimitated by comments e.g.
# ... prov:Entity a owl:Class . # ... ##This section of the prov.owl contains terms from prov-aq prov:hasProvenanceService a owl:ObjectProperty . # ...
In addition we would add provenance information identifying where the information was retrieved from
<> prov:wasDerivedFrom <http://www.w3.org/TR/prov-o/prov-20121231.owl> .
Stian: Should not the above go to the OWL file from the timestamped REC? (changed)
Tim: +1 to Stian. The current location is http://www.w3.org/TR/prov-o/prov.owl, but I plan to use ~ http://www.w3.org/TR/prov-o/prov-20121231.owl when it gets published (to future proof for changes).
Upsides
- Machine readable information for all terms in the namespace can be easily retrieved
Downsides
- Creates a monolithic file
- Some provenance is lost
- Confusing to know what is part of recommendation or not
- Confusing which is the official recommendation, prov.owl or ProvenanceOntology.owl - gut instinct would be that the official is what you get from resolving namespace!
Proposal 2: Use owl:import
Here we define a single owl file that imports the necessary information from all the separate owl files. Something like:
<> owl:imports <http://www.w3.org/TR/prov-o/prov-20121231.owl> . <> owl:imports <http://dvcs.w3.org/hg/prov/raw-file/98870b4c796c/ontology/prov-dictionary.owl> .
Stian: Should not the above URLs point to the OWLs of the timestamped REC and Note's folders?
Upsides
- Creates a simple file with clear distinction between which terms are defined by which notes
Downsides
- No simple dereferencability
- Requires owl reasoning
Proposal 2.1 Use owl:import, but return only PROV-O
This hybrid solution is a single OWL file with the content of ProvenanceOntology.owl (PROV-O) - but with the additional owl:imports for the modules. It will include provenance to the OWL of the official REC that it is derived from.
## Terms declared here are copied verbatim from the PROV-O recommendation <> a owl:Ontology ; prov:hadPrimarySource <http://www.w3.org/TR/2012/WD-prov-o-20120799/ProvenanceOntology.owl> . # ... prov:Entity a owl:Class . # ... ## This namespace also covers terms from notes which ## don't form part of the PROV-O recommendation. # <> owl:imports <http://www.w3.org/TR/prov-aq/prov-aq.owl>, <http://www.w3.org/TR/prov-collections/prov-collections.owl> .
Upsides
- Distinguishes 'official' bit (PROV-O REC) from additional modules (notes)
- Does not require OWL reasoning for official terms
- Stronger metaprovenance
Downsides
- Requires OWL reasoning for notes.
Solution 2.2 Use owl:import and return full merge of PROV-O and all Notes
The WG resolved to use this approach on 19 July 2012:
15:39:27 <pgroth> accepted: for the owl file that comes back from the prov namespace - (solution 2.2. ) Use owl:import and return full merge of PROV-O and all Notes
Consumer-oriented view
- http://www.w3.org/ns/prov ( --> staged)
- owl:imports http://www.w3.org/ns/prov-o ( --> staged; -->original source)
- owl:imports http://www.w3.org/ns/prov-o-inverses ( -- > staged; --> draft)
- owl:imports http://www.w3.org/ns/prov-aq ( --> original source)
- owl:imports http://www.w3.org/ns/prov-dictionary ( --> original source)
- owl:imports http://www.w3.org/ns/prov-links ( --> original source)
Sketch of PROV using activity and plan:
<> a owl:Ontology ; prov:wasGeneratedBy :merge2012-12-16; prov:hadPrimarySource <http://www.w3.org/TR/2012/WD-prov-o-20120799/ProvenanceOntology.owl>; . :merge2012-12-16 prov:used <http://www.w3.org/TR/prov-o/prov-20121231.owl>, <http://www.w3.org/TR/prov-o/inverses-20121231.owl>, <http://www.w3.org/TR/prov-aq/prov-aq.owl>, <http://www.w3.org/TR/prov-collections/prov-collections.owl>; prov:qualifiedAssociation :mergeAssociation2012-12-16; . :mergeAssociation2012-12-16 a prov:Association; prov:hadPlan <#RDFGraphMerge>; . <#RDFGraphMerge> a prov:Plan; rdfs:label "RDF Graph Merge"; foaf:page <http://www.w3.org/TR/rdf-mt/>; dcterms:description [ prov:value "A merge of a set of RDF graphs is defined as follows. If the graphs in the set have no blank nodes in common, then the union of the graphs is a merge; if they do share blank nodes, then it is the union of a set of graphs that is obtained by replacing the graphs in the set by equivalent graphs that share no blank nodes."; prov:wasQuotedFrom <http://www.w3.org/TR/rdf-mt/>; ] . ## Terms declared here are copied verbatim from the PROV-O recommendation # ... prov:Entity a owl:Class . # ... ## This namespace also covers terms from notes which ## don't form part of the PROV-O recommendation. # <> owl:imports <http://www.w3.org/TR/prov-aq/prov-aq.owl> . ## This section of the prov.owl contains terms from prov-aq prov:hasProvenanceService a owl:ObjectProperty . # ... <> owl:imports <http://www.w3.org/TR/prov-collections/prov-collections.owl> . ## This section of the prov.owl contains terms from prov-dictionary prov:Dictionary a owl:Class . # ...
Upsides
- Distinguishes 'official' bit (PROV-O REC) from additional modules (notes)
- Does not require OWL reasoning for official terms
- Stronger metaprovenance
Downsides
- Distinguishing "the big chunk that comes back" requires some work (but still possible)
make simple things easy and hard things possible
Recap:
<> prov:wasDerivedFrom <http://www.w3.org/ns/prov-o.owl> . <> owl:imports <http://www.w3.org/ns/prov-o.owl>. ## Copy of content of prov-o here. <> prov:wasDerivedFrom <http://www.w3.org/ns/prov-aq.owl> . <> owl:imports <http://www.w3.org/ns/prov-aq.owl>. ## Copy of content of prov-aq here
/ns/
Denis moved the following to /ns and fixed the references to TR documents. Please, check that he got everything right.
- http://www.w3.org/ns/prov-aq.owl
- http://www.w3.org/ns/prov-aq.ttl
- http://www.w3.org/ns/prov.owl
- http://www.w3.org/ns/prov.ttl
- http://www.w3.org/ns/inverses.owl
- http://www.w3.org/ns/inverses.ttl
- http://www.w3.org/ns/prov-dictionary.owl
- http://www.w3.org/ns/prov-dictionary.ttl
prov-o-mention and prov-o-inverses should both owl:imports prov-o (but we do not provide the materialization)
prov-o, prov-o-mention, and prov-o-inverses
implementation =
- bin/prov-ns.sh prov-20130312 prov-20130430
XML considerations
Proposal 3 Define all terms in a single OWL file
Terms that are not formally part of PROV-O would be described using just annotation properties (rdfs:label, rdfs:comment), so they don't show up in Ontology processing tools, but are still present for documentary purposes when the namespace is dereferenced.
(Additional annotation properties -- provenance even -- might be added so that automated processing tools could separate the terms on the basis of where they are introduced and more fully described.)