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

What is a profile? #435

Open
kcoyle opened this issue Oct 3, 2018 · 17 comments
Open

What is a profile? #435

kcoyle opened this issue Oct 3, 2018 · 17 comments

Comments

@kcoyle
Copy link
Contributor

kcoyle commented Oct 3, 2018

Many of our issues for the profile guidance document hinge on our definition of profile. I'm going to suggest some functions that a profile must/may/should have as a start to that conversation.

  • MUST define vocabulary terms that are used in the metadata being profiled.
  • Vocabulary terms SHOULD be defined as mandatory, optional, repeatable, not repeatable (alt.: cardinality rules for vocabulary terms SHOULD be defined in the profile)
  • Human-readable labels and definitions MUST be included for vocabulary terms
  • The profile SHOULD (MUST?) define what values are valid for vocabulary terms
  • The profile MAY include input instructions for metadata creators (and to aid users in understanding the deeper meaning of terms)
  • The profile MAY include operational validation code
  • The profile MUST be published to the relevant metadata-using community
  • The profile MAY be published as a human-readable document
  • The profile MAY be published as operational code
  • The profile MAY be expressed in more than one physical file
  • The profile MAY be based on one or more known community standards, for interoperability within that community ("profile of X"), and, when it is, it must indicate that basis.
  • The profile MAY combine vocabularies that cross community boundaries without having any strongly identifiable base profile or profiles.

(No, I'm not sure about all of this - just tossing out every idea I can come up with to aid discussion.)

@kcoyle
Copy link
Contributor Author

kcoyle commented Oct 3, 2018

Instead of the layered view given in the DC Singapore Framework I've been thinking about a more function-based view, something like:
profile

@kcoyle
Copy link
Contributor Author

kcoyle commented Oct 4, 2018

Here's more or less what I had in mind for using examples to talk about types of profiles:

Profiles can take a number of forms and can have a variety of relationships to existing vocabularies, standards, and other profiles. Although it is not possible to list all of the types of profiles, some common types are:

  • profiles that are subsets of a larger vocabulary. These reduce the vocabulary terms of a broad data standard to a smaller number of terms that are useful for a particular community member or application. An example of this is BIBFRA.me designed for library materials. It defines both a core set of terms as well as profiles for specialized communities such as cataloging of rare materials or early printing trade. In this community, all profiles use only terms from a single vocabulary.
  • profiles that can both reduce and extend a base standard. These profiles are developed by members of a data-sharing community but for reasons of jurisdiction or specialization need to add terms beyond the base standard vocabulary in order to meet their needs. They may also omit terms from the base standard that are not relevant to their implementations. An example of this is data catalog vocabulary standard, DCAT, its primary profile, DCAT-AP, and the national variants (DCAT-AT-IT, DCAT-AP-NO, DCAT-AT-DE). While maintaining overall compatibility with the larger data catalog community, each of these profiles adds needed terms for the local variant. These profiles generally make use of terms from more than one namespace.
  • profiles that amend a base standard by inheriting or overriding values of that standard. The example here is of the Open Digital Rights Language (ODRL) which is a language to support rights in the use of digital content in publishing, distribution, and consumption of digital media. The ODRL language encodes a policy that has a core vocabulary that can be extended or overridden by individual instances called "profiles."
  • profiles that use some vocabulary terms from multiple standards without having a strong relationship to any base standard. These profiles develop new vocabularies and may define new terms as needed. (?? not sure about this one?) An example of this is the ADMS vocabulary.

(I don't think I fully understand ODRL - need help from Antoine. It may not be different from DCAT as a type.)

@aisaac
Copy link
Contributor

aisaac commented Oct 7, 2018

I am not 100% sure about ODRL but this seems rather right to me anyway.

The same for the rest. I cannot vouch for everything as I've got a pretty bad bird's eye view of our requirements right now and no time to check. Therefore I can't say whether our requirements overlap or exactly match with these MUST/SHOULD/MAYs, these functions and these types. But I must recognize that (1) the general approach goes in a very interesting direction and (2) that these lists look really, really credible to me :-)

@nicholascar
Copy link
Contributor

The profile MAY be based on one or more known community standards, for interoperability within that community ("profile of X")

Can we extend that to say rather

"The profile MAY be based on one or more known community standards, for interoperability within that community ("profile of X") and, when it is, it must indicate that basis".

@kcoyle
Copy link
Contributor Author

kcoyle commented Oct 8, 2018

@nicholascar updated as indicated

@kcoyle kcoyle added this to To do in Profile Guidance via automation Oct 23, 2018
aisaac added a commit that referenced this issue Oct 24, 2018
- splitting the long list of requirements/recommendations (MUST/SHOULD/MAY) from #435 (comment) and #242 (comment) into various sections where they can be better contextualised and explained (as consistent bits) to readers
- acknowledging that these recommendations did not fit well as intro material and giving more space in the introduction so that the discussion on types and examples of profiles (#435 (comment)) can 'breathe' better.
- provide finer-grained introduction (and better alignment) to other relevant DXWG work (the Profiles Ontology and Profile Negotiation)
- put a placeholder for a conceptual model to which the rest can be naturally attached,  and for which the Profiles Ontology would provide a straight implementation as a vocabulary.
- exploit the notion of role as first introduced in the Profiles Ontology as an interesting pattern to represent the functions that (expressions/components of) profiles can play, as sketched in #435.
@smrgeoinfo
Copy link
Contributor

smrgeoinfo commented Oct 31, 2018

What is a profile for? My answer would be that the purpose is to convey to an agent (human or software) information necessary for it to determine whether the target of a hypermedia affordance (machine actionable link) is available in a representation (serialization + vocabulary + conventions) that the agent can use for some process it wants to execute. In practice, the affordance could specify a representation profile using a URI value that would dereference to a profile description; there might also be tokens like MIME types to use in content negotiation.

This profile ontology needs to define an information model for 'specifications' to allow intelligent clients to determine whether something conforming to the specification is going to be useful. What we'd like is that a URI identifying a spec can be dereferenced to obtain a description of the spec. For humans, a document describing the specification should be available. An rdf representation using the prof:Profile ontology would be for software agents. This machine actionable description asserts relationships between a described spec (the profile) and other known specifications, conformance tests, or(?) some other kind of artefact. It seems to me that there are likely to be a variety of these kind of relationships, which would be specified by the prof:ResourceRole vocabulary proposed in the draft profile doc.

@kcoyle
Copy link
Contributor Author

kcoyle commented Nov 1, 2018

@smrgeoinfo Thanks for that. Our charter asks us to define and create guidance for profiles in general, not specifically DCAT profiles. With that in mind, could you revise/devise an answer that is not specific to DCAT? I think the new wording would begin after "whether the target ... " It would be great if you could complete that sentence. Much appreciated!

@rob-metalinkage
Copy link
Contributor

@smrgeoinfo - we have implemented a profiles ontology to meet precisely these concerns. It also is limited to those concerns not expressable in other canonical vocabularies.

So it does directly define all the properties a given community may need to define a specification - but under the open world assumption things like skos:Definition, prov:wasDerivedFrom, dc:author would be appropriate.

w.r.t. "conforming to the specification is going to be useful" - the profiles ontology partially addresses this by identifying the implications in terms of conformance to more general specifications. Describe "usefulness" beyond that is very challenging to do perfectly - but we have now an object type that can be further modelled by communities of practice with their own profiles. The profiles ontology supports interoperability at this declarative level between such communities primarily.

At the OGC I will indeed adapt Simon Cox's proposed modular specification OWL model - and create additional rules about such metadata - as a profile of the profiles ontology to meet the OGC's needs when publishing specifications and profiles thereof.

Its all very RDF - turtles all the way down and Open World

@smrgeoinfo
Copy link
Contributor

smrgeoinfo commented Nov 1, 2018

@kcoyle I revised language to talk about 'hypermedia affordance', which I believe is the generalized concept we're interested in.

@rob-metalinkage sounds like we're on the same page, but isn't this dxwg project more about the information model/vocabulary for describing a specification and its relationship to other base specifications (if it's a profile)?
I think 'determining if the representation is useful' will have to be based on a client's prior knowledge. If it recognizes the identifier for a profile, or get the representation for the profile and finds out it's based on a known spec, then it might be useful; if the client doesn't recognize anything about the offered representation, it moves on to the next affordance in the document being parsed. This is why clarifying the implications of 'profileOf' is critical.

@kcoyle
Copy link
Contributor Author

kcoyle commented Nov 2, 2018

Possible wording about conformance (if we decide to address conformance) here.

@aisaac
Copy link
Contributor

aisaac commented Feb 4, 2019

@kcoyle while surveying this old issue I wanted to check: does the recent content at https://w3c.github.io/dxwg/profiles/#functions cover your proposal at #435 (comment)
I believe it should.
If it does, then I believe that the only point needed to close this issue is to include your proposal at #435 (comment) into the document.

@aisaac
Copy link
Contributor

aisaac commented Feb 4, 2019

As I'm progressing in my re-reading of the current doc next to the issue, I may have found the missing bit of @kcoyle 's diagram: the "vocabulary" aspect.
This maybe relates to a note I've left at https://w3c.github.io/dxwg/profiles/#RPFNCTERMS "It could also be in roles/functions if there is nothing there about defining terms". This requirement has two faces: it can serve as definition of profiles, but at the same time it spells out a key function of profile ("vocabulary" as Karen captures it) which has no corresponding requirement in our current "functions" section. @kcoyle is this reading correct?

@kcoyle
Copy link
Contributor Author

kcoyle commented Feb 5, 2019

I'm not sure what the sentence means regarding roles/functions. A role or function would be expressed as a property or a value. What else is there?

@aisaac
Copy link
Contributor

aisaac commented Feb 5, 2019

Sorry out of context it's indeed "It could also be in roles/functions if there is nothing there about defining terms"" means "It could also be in the section about functions if there is nothing there about the function of defining/listing terms".
Basically:

So should we split the requirement RPFNCTERMS so that it contributes both to the definition (as it is now) and to the list of functions (by embodying the "vocabulary" function)?

@kcoyle
Copy link
Contributor Author

kcoyle commented Feb 5, 2019

@aisaac I agree with your note in that section that the requirement in 2.1 is also be a function. I think it belongs in both places. (Note: that requirement is missing its short name - it's [RPFNCTERMS])

@aisaac
Copy link
Contributor

aisaac commented Feb 5, 2019

Thanks @kcoyle ! I'm going to work it into our working space for the first sections, and raise on the original issue (#275 ) the possibility to dually classify it, and reflect this in the UCR doc.

aisaac added a commit that referenced this issue Feb 6, 2019
This commits reflect changes for the intro worked on in https://docs.google.com/document/d/1Y4jP4SGZMnt63EpjTX11-hW6-3mxlaq1i-Lbiw4tx1M/
approved during the call at https://www.w3.org/2019/02/06-profgui-minutes.html
This relates in particular to suggestions discussed in #417 and #435 and comments on PR #446 that had not been worked in yet
@aisaac aisaac mentioned this issue Feb 6, 2019
@aisaac
Copy link
Contributor

aisaac commented Feb 6, 2019

Replying to my own comment at #435 (comment)
The list of examples of #435 (comment) is included in the document as per #738
Everyone, are you happy with https://rawgit.com/w3c/dxwg/updates-intro/profiles/#examplesrelatedwork
?

Once this PR is approved the only obstacle to closing this issue is what's described at #435 (comment)

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

No branches or pull requests

5 participants