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

prof:isTransitiveProfileOf needs more convincing case and/or example #8

Open
aisaac opened this issue Jan 9, 2019 · 10 comments
Open

Comments

@aisaac
Copy link
Contributor

aisaac commented Jan 9, 2019

As in the title...
This came to mind while writing the ESWC paper.
The property is not super-clear in https://w3c.github.io/dxwg/profilesont/ and there's no example for it.

Actually one could question whether it is needed, or whether it is just a "utility properties" to be derived from other statements, the same way that skos:broaderTransitive is in SKOS. That is to say, that they could be kept for amateurs only ;-) and put in an "advanced" section.

@andrea-perego
Copy link
Contributor

+1 to @aisaac .

I am actually unsure how prof:isTransitiveProfileOf can be safely implemented. E.g., this would require at least all profiles in the "chain" to be under the same governance and design rules. And also in this case profile transitiveness may not be granted.

Do we have a use case for this property?

@kcoyle
Copy link
Contributor

kcoyle commented Jan 9, 2019

#2 goes into this as well, even though the immediate thrust was its name. And this links to many of the comments by @agreiner about the dangers of inheritance.

@rob-metalinkage
Copy link
Contributor

This predicate was included because @agreiner argued we needed a mechanism to have a "flat representation" - not that inheritance wasnt a fundamental requirement or had any specific "dangers" - its a convenience we dont specify how should be used.

proposed action: include in examples.

@aisaac
Copy link
Contributor Author

aisaac commented Jan 9, 2019

The proposal to add an example sounds of course good to me :-)
The beginning of explanation for the motivation sounds quite appropriate too.

@nicholascar
Copy link
Contributor

nicholascar commented Feb 4, 2019

Here is a candidate example. If we can agree on the purpose and construction of the example, I will draw diagrams for it (easier to version text!):

EXAMPLE X: prof:isTransitiveProfileOf in use

# A profile that is within a hierarchy of profiles may wish to indicate it profiles things "further up the 
# chain". To do this, prof:isTransitiveProfileOf can be used to indicate anything the profile is related to by a series of one or more prof:isProfileOf properties.

# Here the New Zealand profile of the ISO addressing standard is presented in a chain of profiles
@prefix dct: <http://purl.org/dc/terms/> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@prefix role: <http://www.w3.org/ns/dx/prof/role/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://linked.data.gov.au/def/iso19160-1-address-nz-profile>
  a prof:Profile ;
  rdfs:label "New Zealand Profile of ISO19160-1" ;
  rdfs:comment """This is a country-specific profile of the international 
                  addressing standard, ISO19160-1:2015 (Address)""" ;
  prof:isProfileOf <http://linked.data.gov.au/def/iso19160-1-address> .

# The ISO thing that the NZ Profile profiles is actually a Web Ontology Language
# (OWL) version of the original ISO addressing standard
<http://linked.data.gov.au/def/iso19160-1-address>
  a prof:Profile ;
  rdfs:label "OWL Profile of ISO19160-1" ;
  rdfs:comment """This profile profiles both ISO19160-1 (Addressing) and also 
                  the Web Ontology Language (OWL)""" ;
  prof:isProfileOf <https://www.iso.org/standard/61710.html> , 
                   <http://www.w3.org/2002/07/owl#> .

<https://www.iso.org/standard/61710.html>
  a dct:Standard ;
  rdfs:label "ISO 19160-1:2015 Addressing -- Part 1: Conceptual model" .

# Here now the New Zealand profile indicates it is profiling things which profile other things:

@prefix dct: <http://purl.org/dc/terms/> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@prefix role: <http://www.w3.org/ns/dx/prof/role/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://linked.data.gov.au/def/iso19160-1-address-nz-profile>
  a prof:Profile ;
  rdfs:label "New Zealand Profile of ISO19160-1" ;
  rdfs:comment """This is a country-specific profile of the international 
                  addressing standard, ISO19160-1:2015 (Address)""" ;
  prof:isProfileOf <http://linked.data.gov.au/def/iso19160-1-address> ;
  prof:isTransitiveProfileOf <http://linked.data.gov.au/def/iso19160-1-address> ,
                             <https://www.iso.org/standard/61710.html> , 
                             <http://www.w3.org/2002/07/owl#> .

# Since prof:isProfileOf is a sub property of prof:isTransitiveProfileOf, the relation between 
# the NZ Profile and its immediate parent can be described using both properties.

# now, uisng prof:isTransitiveProfileOf, the author of the NZ Profile can show all the standards or other 
# profiles that users of the NZ Profile might need to be aware of, without following the hierarchy of
# profiles, link by link. Using prof:isTransitiveProfileOf, the user of the NZ Profile learns, for instance,
that the NZ Profile profiles the OWL standard at some point in its hierarchy.

Question to all: does this example convey useful information? Could it be formulated differently?

@aisaac
Copy link
Contributor Author

aisaac commented Feb 5, 2019

@nicholascar nitpicking: next time you post an example can you do carriage returns in the comment so that these checking it the example in github UI don't have to scroll horizontally?

@aisaac
Copy link
Contributor Author

aisaac commented Feb 5, 2019

@nicholascar it conveys useful information, thanks!

But it may have one flaw:

The ISO thing that the NZ Profile profiles is actually a Web Ontology Language
OWL) version of the original ISO addressing standard
sounds really loose. Can "the ISO thing" be something like "ISO19160-1"?
And here's where the flaw could be: in this case, is <http://linked.data.gov.au/def/iso19160-1-address> really a profile of ISO19160-1:2015? I think that one could see in it a resource descriptor (in OWL) for that base ISO standard, not a fully-fledged profile.

Also, in terms of formulation, my expectation would be that an example for a transitive property should not hint that data publishers have to materialize the statements of that property. In SKOS we were rather clear that the general expectation is that data publishers assert skos:broader statements and that skos:broaderTransitive are then infered, possibly by others, mainly for data consumption scenarios (i.e., querying).
Of course this is not a general rule. Still, the intro and formulation for your example could be changed.

Here's the order of things that I would suggest:

  1. The example without the transitive statements.

  2. A sentence that introduces the inference/semantics. Like "From the prof:isProfileOf statements in this example, and according to the semantics of prof:isTransitiveProfileOf, one can infer the following statements:"

  3. The transitive statements infered.

  4. A recap/guidance for data consumers and implementers, leaving options open. Like
    "These statements can for example help data consumers to identify that a piece of data that conforms to a very narrow profile actually conforms to a more general specification that they can handle, independently from the complexity of the 'profiling chain' that relates these two specifications. At this stage however we do not make recommendations on who should materialize the results of inference, and where they shall be published".
    unless there is a requirement that says that the hierarchy of profiling should be published?

I hope this helps.

@nicholascar
Copy link
Contributor

nicholascar commented Feb 5, 2019

OK:

EXAMPLE X: prof:isTransitiveProfileOf in use

# A profile that is within a hierarchy of profiles may wish to indicate it profiles 
# things "further up the chain". To do this, prof:isTransitiveProfileOf can be used 
# to indicate anything the profile is related to by a series of one or more 
# prof:isProfileOf properties.

# Here the New Zealand profile of the ISO addressing standard is presented in a chain 
# of profiles:

@prefix dct: <http://purl.org/dc/terms/> .
@prefix prof: <http://www.w3.org/ns/dx/prof/> .
@prefix role: <http://www.w3.org/ns/dx/prof/role/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<http://linked.data.gov.au/def/iso19160-1-address-nz-profile>
  a prof:Profile ;
  rdfs:label "New Zealand Profile of ISO19160-1" ;
  rdfs:comment """This is a country-specific profile of the international 
                  addressing standard, ISO19160-1:2015 (Address)""" ;
  prof:isProfileOf <http://linked.data.gov.au/def/iso19160-1-address> .

# The ISO thing that the NZ Profile profiles is actually a Web Ontology Language
# (OWL) version of the original ISO addressing standard
<http://linked.data.gov.au/def/iso19160-1-address>
  a prof:Profile ;
  rdfs:label "OWL Profile of ISO19160-1" ;
  rdfs:comment """This profile profiles both ISO19160-1 (Addressing) and also 
                  the Web Ontology Language (OWL)""" ;
  prof:isProfileOf <https://www.iso.org/standard/61710.html> , 
                   <http://www.w3.org/2002/07/owl#> .

<https://www.iso.org/standard/61710.html>
  a dct:Standard ;
  rdfs:label "ISO 19160-1:2015 Addressing -- Part 1: Conceptual model" .

# Now, according to the semantics of prof:isTransitiveProfileOf, using the 
# prof:isProfileOf statements above, one can infer the following additional
# statements:

<http://linked.data.gov.au/def/iso19160-1-address-nz-profile>
  prof:isTransitiveProfileOf <http://linked.data.gov.au/def/iso19160-1-address> ,
                             <https://www.iso.org/standard/61710.html> , 
                             <http://www.w3.org/2002/07/owl#> .

# These statements may help consumers understand which broad, well-known
# profiles data they have conforms to when they are presented only with its 
# conformance to most specialised (lowest) profile in a hierarchy which they
# may not understand.

# In this example too, a user of the profile 
# <http://linked.data.gov.au/def/iso19160-1-address-nz-profile> will also 
# understand that data conforming to it is also conformant with OWL which is not 
# in the direct hierarchy of addressing standards (iso19160-1-address-nz-profile > 
# iso19160-1-address > ISO 19160-1:2015) but is critical to know about when using
# the specialised standard as it can indicate reasoning possibilities.

istransitiveprofileof

@kcoyle
Copy link
Contributor

kcoyle commented Feb 5, 2019

@nicholascar @aisaac In the diagram above, I believe that Profile is a named graph, not a class. There has to be a "thing" with an IRI that represents the profile. Also, I don't see that the dct:Standard class is relevant to the diagram. And one more: what is the box that just says "OWL"? And how is OWL Profiles of ISO... a profile of it?

So I suggest: "Profile" (dark box) becomes "Profile X"
Drop dct:Standard
Clarify box with just "OWL"

@aisaac
Copy link
Contributor Author

aisaac commented Feb 5, 2019

@nicholascar it looks better now. Wrt formatting, I would recommend to split the example in several pieces of code with 'real text' in-between, not one piece of code with the explanations in comment (especially regarding the parts introduced at "Now, according to the semantics of prof:isTransitiveProfileOf" and after). But well I can try this myself after the example has been stabilized ;-)

Wrt the content, I'm still not sure that the 'OWL Profile of ISO19160-1' really qualifies as a profile. The more I look at it the more I'm convinced this is a ResourceDescriptor, even though it's not one created by the publisher of the original standard. In fact I would really recommend against PROF venturing into the area of profile OWL. It's a bit like saying that an SHACL file is a profile of the SHACL.... Plus, OWL has already some "real" profiles, like OWL 2 EL and it's a completely different level of profiling (well in fact I believe it's a case true profiling, but between meta-vocabularies, not vocabularies - anyway again please let's not venture there...).

@plehegar plehegar transferred this issue from w3c/dxwg Feb 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants