Navigation Menu

Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alignment with W3C prov-o #28

Open
lewismc opened this issue Jul 27, 2017 · 18 comments
Open

Alignment with W3C prov-o #28

lewismc opened this issue Jul 27, 2017 · 18 comments

Comments

@lewismc
Copy link
Member

lewismc commented Jul 27, 2017

Both relaProvenance.owl and reprSciProvenance.owl should align with https://www.w3.org/TR/prov-o/, in particular the prov-o ontology can be located at http://www.w3.org/ns/prov-o

An example alignment opportunity exists within reprSciProvenance.owl#Agent

  <owl:Class rdf:about="#Agent">
    <rdfs:subClassOf rdf:resource="&res;#ExperimentActivity"/>
  </owl:Class>

This should align as an equivalence of the following http://www.w3.org/ns/prov-o#Agent

:Agent
    a owl:Class ;
    rdfs:isDefinedBy <http://www.w3.org/ns/prov-o#> ;
    rdfs:label "Agent" ;
    owl:disjointWith :InstantaneousEvent ;
    :category "starting-point" ;
    :component "agents-responsibility" ;
    :definition "An agent is something that bears some form of responsibility for an activity taking place, for the existence of an entity, or for another agent's activity. "@en ;
    :dm "http://www.w3.org/TR/2013/REC-prov-dm-20130430/#term-agent"^^xsd:anyURI ;
    :n "http://www.w3.org/TR/2013/REC-prov-n-20130430/#expression-Agent"^^xsd:anyURI .
@lewismc
Copy link
Member Author

lewismc commented Jul 27, 2017

I would like to bring Hook Hua on board here if possible to aid our alignment.

@dr-shorthair
Copy link
Collaborator

@dr-shorthair
Copy link
Collaborator

relates to #23

@stain
Copy link

stain commented Aug 31, 2017

Agree there are many potential alignments here. In PROV-O, an Agent can be a subclass of a provo:Entity or provo:Activity - but not both (they are disjoint). What could be confusing in this alignment is that you have:

<http://sweetontology.net/reprSciProvenance#Agent> a owl:Class ;
	rdfs:subClassOf <http://sweetontology.net/humanResearch#ExperimentActivity> .

and it would be natural to assume that a http://sweetontology.net/humanResearch#ExperimentActivity is a kind of provo:Activity - something with a start and end that might generate or use entities and be associated with agents.

But then you have confusingly:

<http://sweetontology.net/reprSciProvenance#Artifact> a owl:Class ;
	rdfs:subClassOf <http://sweetontology.net/humanResearch#ExperimentActivity> .

but an Artifact is surely more like an Entity than an Activity? What is the activity of an artifact? Is it some kind of machine?

@lewismc
Copy link
Member Author

lewismc commented Aug 31, 2017

Hi @stain , thanks for your input. I saw you recently active on the pros mailing list... so thank you for dropping by here.

What is the activity of an artifact? Is it some kind of machine?

I do not really know. I would however comment that an in my mind an <http://sweetontology.net/reprSciProvenance#Artifact> is the product of an <http://sweetontology.net/humanResearch#ExperimentActivity> rather than some refs:subClassOf.

@graybeal
Copy link
Collaborator

Yes to all the above. I think all of these cases fall into the category of "there are some issues with SWEET, it could really stand a thorough review."

In the absence of definitions, it's really easy (and I support) drawing conclusions based on the names: a Science Provenance Artifact is in fact sometimes a product of a Human Research Experiment (Activity). It can also be the product of an operational activity that is not a Research Experiment, it seems to me. (Because some science activities are not research. Though this is a narrowly drawn point, so if you like it the way it is, I won't squawk.

@dr-shorthair
Copy link
Collaborator

The PROV-O axiom

prov:Activity owl:disjointWith prov:Entity .

is a significant boundary condition.

The degree to which SWEET classes can be lined up against one or other of these fundamental classes determines whether the PROV-O world-view can be applied universally as a kind of light-weight upper ontology, or only selectively.

Note that this particular split is not at all unique to PROV - it is strongly related to the core top-level classes in BFO, called 'Occurrent' and 'Continuant', though I don't think BFO has a specific disjointness axiom. In other places the terms 'perdurant' and 'endurant' are used to denote similar ideas.

@stain
Copy link

stain commented Sep 1, 2017

Yes, the Activity/Entity split means that what something is and what it is doing is fundamentally different in a provenance model. As time-line and semantics are quite important in PROV (e.g. an entity that is used by an activity can't be generated after that activity was ended) it becomes messy if you merge these concepts.

If something sounds like "both an activity and entity" then it could be better left undefined as an Agent - which if lower level details are needed could be further refined as an Entity and an associated "life" Activity. If this refinement happens in different PROV documents then no problems (unless you combine them).

To be useful provenance you might generally have multiple fine-grained activities for longer-lived agents - e.g. instead of a 10-minute life entity :authorOfComment326573933 that was associated with the 1-minute long activity :authoringComment326573933 that generated :comment326573933 you would have the (hopefully) long-lived agent <http://orcid.org/0000-0001-9842-9718> that was associated with the shorter activity. The longer activity :StianLiving (which should roughly overlap with the timeline of my entity) is generally not interesting.

But PROV-DM allows you to do "scuffy provenance" and stop at whatever detail level is appropriate. What becomes hard is if you want to do this with PROV-O and also use OWL reasoning (e.g. you can do RDFS-based scruffy PROV-O and be fine, as you would not consider any disjoint restrictions)

@stain
Copy link

stain commented Sep 1, 2017

Is a reprSciProvenance#Artifact only scientifically valuable artifacts (subclass of prov:Entity), or any kind of "thing" (equivalent of prov:Entity) which then can have been generated by any kind of prov:Activity?

Parts of reprSciProvenance and relaProvenance seem to me to be proto-provenance (or even cloned) properties and classes from OPM and PROV (Process, Agent, Artifact, used, wasDerivedFrom) which you probably don't need or want to specialize and just keep as equivalents.

(Was there a historical reason why the upper ontologies were not used directly?)

@stain
Copy link

stain commented Sep 4, 2017

You may also want to avoid using the prov prefix for your internal provenance ontology, as http://prefix.cc/prov would link prov to W3C PROV namespace http://www.w3.org/ns/prov#

@lewismc
Copy link
Member Author

lewismc commented Sep 5, 2017

...You may also want to avoid using the prov prefix

acknowledged @stain thank you for the suggestion. Can you please create a new issue and someone can submit a pull request to change it. prov is used as a namespace in the following files

./relaProvenance.ttl
./reprSciProvenance.ttl
./stateDataProcessing.ttl

@lewismc
Copy link
Member Author

lewismc commented Sep 5, 2017

(Was there a historical reason why the upper ontologies were not used directly?)

@stain in all honesty, I think that this knowledge has been lost due to original author (Rob Raskin) unfortunately no longer being around. I think that your observation that "...Parts of reprSciProvenance and relaProvenance seem to me to be proto-provenance (or even cloned) properties and classes from OPM and PROV (Process, Agent, Artifact, used, wasDerivedFrom)..." may well be true. I am not really in a position to comment with any significant degree of accuracy here.

With the aim of moving forward however, I think we could consider the statement to be true...

@rduerr
Copy link
Contributor

rduerr commented Sep 5, 2017

@stain Actually Rob created these ontologies long before the PROV ontologies, or for that matter most ontologies existed in the Earth sciences. To be exact a quick Google search dates SWEET back to 2003 or earlier.

@lewismc
Copy link
Member Author

lewismc commented Sep 5, 2017

Ah ha thank you @rduerr the context is very helpful and I withdraw my statement.

@stain stain mentioned this issue Sep 7, 2017
@stain
Copy link

stain commented Sep 7, 2017

Good provenance of provenance there, @rduerr! :-)

Prefix bug added as #47

@lewismc lewismc modified the milestones: 3.0.0, 3.1.0 Oct 11, 2017
@carueda carueda modified the milestones: 3.1.0, 3.1.1 Nov 24, 2017
@lewismc
Copy link
Member Author

lewismc commented Jan 10, 2018

The following alignments were generated using the SAM

<?xml version='1.0' encoding='utf-8'?>
<rdf:RDF xmlns='http://knowledgeweb.semanticweb.org/heterogeneity/alignment'
	 xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' 
	 xmlns:xsd='http://www.w3.org/2001/XMLSchema#' 
	 alignmentSource='AgreementMakerLight'>

<Alignment>
	<xml>yes</xml>
	<level>0</level>
	<type>??</type>
	<onto1>http://sweetontology.net/sweetAll</onto1>
	<onto2>http://www.w3.org/ns/prov#</onto2>
	<uri1>http://sweetontology.net/sweetAll</uri1>
	<uri2>http://www.w3.org/ns/prov#</uri2>
	<map>
		<Cell>
			<entity1 rdf:resource="http://sweetontology.net/matrEquipment/Communication"/>
			<entity2 rdf:resource="http://www.w3.org/ns/prov#Communication"/>
			<measure rdf:datatype="http://www.w3.org/2001/XMLSchema#float">0.9857</measure>
			<relation>=</relation>
		</Cell>
	</map>

	<map>
		<Cell>
			<entity1 rdf:resource="http://sweetontology.net/propSpaceLocation/Location"/>
			<entity2 rdf:resource="http://www.w3.org/ns/prov#Location"/>
			<measure rdf:datatype="http://www.w3.org/2001/XMLSchema#float">0.9857</measure>
			<relation>=</relation>
		</Cell>
	</map>

	<map>
		<Cell>
			<entity1 rdf:resource="http://sweetontology.net/reprSciProvenance/Agent"/>
			<entity2 rdf:resource="http://www.w3.org/ns/prov#Agent"/>
			<measure rdf:datatype="http://www.w3.org/2001/XMLSchema#float">0.9801</measure>
			<relation>=</relation>
		</Cell>
	</map>

	<map>
		<Cell>
			<entity1 rdf:resource="http://sweetontology.net/prop/Role"/>
			<entity2 rdf:resource="http://www.w3.org/ns/prov#Role"/>
			<measure rdf:datatype="http://www.w3.org/2001/XMLSchema#float">0.9801</measure>
			<relation>=</relation>
		</Cell>
	</map>

	<map>
		<Cell>
			<entity1 rdf:resource="http://sweetontology.net/reprMath/Collection"/>
			<entity2 rdf:resource="http://www.w3.org/ns/prov#Collection"/>
			<measure rdf:datatype="http://www.w3.org/2001/XMLSchema#float">0.9801</measure>
			<relation>=</relation>
		</Cell>
	</map>

	<map>
		<Cell>
			<entity1 rdf:resource="http://sweetontology.net/phenSystem/Collection"/>
			<entity2 rdf:resource="http://www.w3.org/ns/prov#Collection"/>
			<measure rdf:datatype="http://www.w3.org/2001/XMLSchema#float">0.9801</measure>
			<relation>=</relation>
		</Cell>
	</map>

	<map>
		<Cell>
			<entity1 rdf:resource="http://sweetontology.net/reprDataProduct/Collection"/>
			<entity2 rdf:resource="http://www.w3.org/ns/prov#Collection"/>
			<measure rdf:datatype="http://www.w3.org/2001/XMLSchema#float">0.9801</measure>
			<relation>=</relation>
		</Cell>
	</map>

</Alignment>
</rdf:RDF>

@lewismc lewismc modified the milestones: 3.1.1, 3.2.0 Jan 10, 2018
@stain
Copy link

stain commented Jan 10, 2018

I must admit I have never seen http://knowledgeweb.semanticweb.org/heterogeneity/alignment before and don't understand those fractional measures :-/ -- but it still looks OK. I see ExperimentActivity is not included - probably because it's in a different SWEET ontology.

If you don't want to use PROV-O as upper ontology (which in OWL would implicate the disjointness of Activity and Entity) you can also do light-weight alignment using SKOS - we did this in PAV to align with DC Terms as dct also had some issues in OWL-land.

But the simpler fix would be to change the relationship between reprSciProvenance#Artifact and humanResearch#ExperimentActivity, as @lewismc points out this does not really make sense as a subclass, the artifact is better something the activity generates or uses (or for living artifacts perhaps even influencing as an Agent)

@lewismc
Copy link
Member Author

lewismc commented Jan 10, 2018

Hi @stain this mapping is an automated, non-correct, non-quality checked preliminary effort to see where the integration points are. Thank you SO much for providing input on what is good and bad, and what is missing. Your input is essential to us doing this properly.

By the way, we are having a public community session on SWEET this afternoon at the ESIP Winter Meeting in Bethesda, MAryland, U.S.A. Meeting details can be found at the meeting invite below, we would love you to join as we will be discussing alignments

http://sched.co/D6Dh

@lewismc lewismc modified the milestones: 3.2.0, 3.3.0 Mar 12, 2018
@lewismc lewismc modified the milestones: 3.3.0, 3.4.0 Jul 18, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants