Qualifying validity of semantic properties #985

Closed
darenwelsh opened this Issue Apr 19, 2015 · 5 comments

Comments

Projects
None yet
3 participants
@darenwelsh

I'd like to open a discussion on a potential new feature for SMW that would require some work. I recently posed this question on the SMW-user mailing list, but figured it might be better to move the conversation here so any progress might be tracked. I have modified this post from my original email based on a couple email replies.

Background

By implementing SMW, we moved our "static" knowledge base from Word documents, emails, and other traditional file types into a much more powerful semantic wiki. Now we can make multiple use of the same information and we can query for data to expose gaps in our knowledge capture. This is all great as we know. The limitation, though, is that our organization needs to back up many of these semantic "claims" with some kind of source.

For example, I can say for the "EVA Ratchet Wrench" page (Subject) that the property "Length" (Predicate) has the value "12 inches" (Object). The problem I see is that I have to use another method or extension to link to that statement the source data for that claim. In this case, I should link to the drawing for that hardware to verify that it is indeed 12 inches long. Otherwise, the only validation we have is the record of who added the value of "12". How do we know they didn't look up the wrong number or have a typo mistake? In the wiki way, we rely on other users reviewing edits for accountability. But what source do they use to verify the edit was correct?

We use Extension:Cite to help us back up our claims with sources like hardware certification documents and operational constraints (one of the many types of rules we have to follow). Unfortunately, this extension doesn't work well with SMW (or maybe I should say it the other way around).

The <ref name=”asdf”> method breaks across transclusion and semantic queries. There's no easy way to insert citations into properties. There's no reporting on use of citations (who requested a citation, who added it, who edited it, how many are on each page - qualifying the validity of the page as a whole). But the more I use SMW and see its growing implementation at my organization, the more I wish citations of data sources were easier to add and maintain.

Question

So why not add a fourth element to the relationship? Could (and should) SMW be modified as Subject - Predicate - Object - Source?

I suppose it might not be that simple, though. My example of the length of an object is pretty easy to source. Something like the population of a city might not be so easy. For example, the population of Paris might be set to 2,273,305 with a source based on data from 2013, but that is obviously outdated. We might also make a claim that the population is 2,400,000 based on some extrapolation. Which of those two statements is more "true"?

Maybe Wikibase is the solution to this problem, but I'm still trying to figure out how well it will integrate with SMW.

So back to my original intent -- I'm wondering if SMW could be modified to allow for linking the data source(s) to make citations a little better integrated.

Thoughts?

@mwjames

This comment has been minimized.

Show comment
Hide comment
@mwjames

mwjames Apr 27, 2015

Contributor

The following comment will focus on the reference made to the Cite extension and is by no means to represent a suggestions on how a reference statement would have to be implemented in order to qualify an untested claim (simply for the property value assignment on a subject page).

We use Extension:Cite to help us back up our claims with sources like hardware certification documents and operational constraints (one of the many types of rules we have to follow). Unfortunately, this extension doesn't work well with SMW (or maybe I should say it the other way around).

Yes, the Cite extension with its own <ref> parser doesn't work well with SMW because the parsing of the content is hidden from the page process (isolated by its own parser function) and even if you can hook into the parser output you would have a hard time to select and filter annotatable content.

Given the fact that we want structured data in the first place we need a different approach. The following sneak preview [0] of the new Semantic Citation extension (doesn't use Cite) will give you an insight on how citations can be fully integrated into SMW.

[0] https://vimeo.com/126189455

Contributor

mwjames commented Apr 27, 2015

The following comment will focus on the reference made to the Cite extension and is by no means to represent a suggestions on how a reference statement would have to be implemented in order to qualify an untested claim (simply for the property value assignment on a subject page).

We use Extension:Cite to help us back up our claims with sources like hardware certification documents and operational constraints (one of the many types of rules we have to follow). Unfortunately, this extension doesn't work well with SMW (or maybe I should say it the other way around).

Yes, the Cite extension with its own <ref> parser doesn't work well with SMW because the parsing of the content is hidden from the page process (isolated by its own parser function) and even if you can hook into the parser output you would have a hard time to select and filter annotatable content.

Given the fact that we want structured data in the first place we need a different approach. The following sneak preview [0] of the new Semantic Citation extension (doesn't use Cite) will give you an insight on how citations can be fully integrated into SMW.

[0] https://vimeo.com/126189455

@darenwelsh

This comment has been minimized.

Show comment
Hide comment
@darenwelsh

darenwelsh Apr 28, 2015

Thanks for the preview. I'm excited to try it out. In the video, it looks like you can establish the reference information on a separate page from where it is cited. Is that true? If so, can it be set on any page or just the subpage named /resources?

Also, since the code to cite a reference is [[CiteRef::Reference Name]], which is basically the same syntax as setting a semantic property, I'm not sure how this will be tied to something set as a semantic property. For example, could you have something like the following?

[[Population::12,000,000]][[CiteRef::2012 Paris census]]

I'm not sure about the syntax I used, but basically I'm asking if you can set something as a semantic property and link it to the cited source data. In my example, with the Population definition next to the CiteRef definition, I don't see how they will be linked. If I query from a different page for the population, will it also bring up the citation? For example, would {{#ask: [[Paris]] |? Population }} result in 12,000,000[1]?

Thanks for the preview. I'm excited to try it out. In the video, it looks like you can establish the reference information on a separate page from where it is cited. Is that true? If so, can it be set on any page or just the subpage named /resources?

Also, since the code to cite a reference is [[CiteRef::Reference Name]], which is basically the same syntax as setting a semantic property, I'm not sure how this will be tied to something set as a semantic property. For example, could you have something like the following?

[[Population::12,000,000]][[CiteRef::2012 Paris census]]

I'm not sure about the syntax I used, but basically I'm asking if you can set something as a semantic property and link it to the cited source data. In my example, with the Population definition next to the CiteRef definition, I don't see how they will be linked. If I query from a different page for the population, will it also bring up the citation? For example, would {{#ask: [[Paris]] |? Population }} result in 12,000,000[1]?

@mwjames

This comment has been minimized.

Show comment
Hide comment
@mwjames

mwjames Apr 28, 2015

Contributor

In the video, it looks like you can establish the reference information on a separate page from where it is cited. Is that true?

Yes (that was one main motivation, reusable citations)

If so, can it be set on any page

Yes (those enabled for semantic usage)

or just the subpage named /resources?

No

[[CiteRef::Reference Name]], which is basically the same syntax as setting a semantic property .. I'm not sure how this will be tied to something set as a semantic property.

CiteRef (as alias for Citation reference) is a predefined property, that is why it uses the same syntax because you create a statement about a citation resource (which internally is a subobject).

[[Population::12,000,000]][[CiteRef::2012 Paris census]]

As I tried to make it clear in the pretext of the previous comment, we talk about plain simple citation (no qualification of statements) therefore those will not be linked to each other. Qualification of statements is a conceptional model issue in SMW and not solved by adding a simple link.

In above case, you get a claim about the Population and a separate claim about a citation resource therefore only humans can make the connection between A (Population) and B (CiteRef) and qualify that Paris -> hasPopulation of -> ..., Paris -> hasCitation resource -> ...

Just as a brainteaser you would need a different syntax that would allow to combine two statements using an intermediary object and make them link to each other (but that goes beyond the current citation discussion).

If I query from a different page for the population, will it also bring up the citation?

No. Again this needs more food for thought and is not solved by adding citations to a subject.

For example, would {{#ask: [[Paris]] |? Population }} result in 12,000,000[1]?

No

PS: The main motivation for Semantic Cite is to structure citation content where Cite can only deliver loose text components with no real chance of turning them into semantic relevant annotations.

Contributor

mwjames commented Apr 28, 2015

In the video, it looks like you can establish the reference information on a separate page from where it is cited. Is that true?

Yes (that was one main motivation, reusable citations)

If so, can it be set on any page

Yes (those enabled for semantic usage)

or just the subpage named /resources?

No

[[CiteRef::Reference Name]], which is basically the same syntax as setting a semantic property .. I'm not sure how this will be tied to something set as a semantic property.

CiteRef (as alias for Citation reference) is a predefined property, that is why it uses the same syntax because you create a statement about a citation resource (which internally is a subobject).

[[Population::12,000,000]][[CiteRef::2012 Paris census]]

As I tried to make it clear in the pretext of the previous comment, we talk about plain simple citation (no qualification of statements) therefore those will not be linked to each other. Qualification of statements is a conceptional model issue in SMW and not solved by adding a simple link.

In above case, you get a claim about the Population and a separate claim about a citation resource therefore only humans can make the connection between A (Population) and B (CiteRef) and qualify that Paris -> hasPopulation of -> ..., Paris -> hasCitation resource -> ...

Just as a brainteaser you would need a different syntax that would allow to combine two statements using an intermediary object and make them link to each other (but that goes beyond the current citation discussion).

If I query from a different page for the population, will it also bring up the citation?

No. Again this needs more food for thought and is not solved by adding citations to a subject.

For example, would {{#ask: [[Paris]] |? Population }} result in 12,000,000[1]?

No

PS: The main motivation for Semantic Cite is to structure citation content where Cite can only deliver loose text components with no real chance of turning them into semantic relevant annotations.

@alex-mashin

This comment has been minimized.

Show comment
Hide comment
@alex-mashin

alex-mashin Apr 24, 2016

What you actually want is metadata. Not adding a fourth component to the triplet, but making it as a whole the subject of a new one with predicate "Source".

To a certain extent this can be done even now with subobjects.

What you actually want is metadata. Not adding a fourth component to the triplet, but making it as a whole the subject of a new one with predicate "Source".

To a certain extent this can be done even now with subobjects.

@mwjames

This comment has been minimized.

Show comment
Hide comment
@mwjames

mwjames Aug 24, 2016

Contributor

SMW-core did require some internal changes to allow recording of meta data (or as we called provenance data) to an individual value assignment.

#1808 tries to outline a nominal approach that should be sufficient for users to adapt individual requirements to store and query those data.

I'll be closing this issue in favour of #1808.

Contributor

mwjames commented Aug 24, 2016

SMW-core did require some internal changes to allow recording of meta data (or as we called provenance data) to an individual value assignment.

#1808 tries to outline a nominal approach that should be sufficient for users to adapt individual requirements to store and query those data.

I'll be closing this issue in favour of #1808.

@mwjames mwjames closed this Aug 24, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment