@base . @prefix : . @prefix dcterms: . @prefix rdf: . @prefix rdfs: . @prefix owl: . @prefix foaf: . @prefix skos: . ################# # About Datanode # ################# a owl:Ontology ; rdfs:label "The Datanode Vocabulary" ; owl:versionInfo "0.4" ; dcterms:creator "enridaga - enricodaga@gmail.com" ; dcterms:description "

Naming conventions:

  1. camel case
  2. has[Noun]/is[Noun]Of
  3. [present tense transitive verb]/[past tense verb]By,To,From,...
  4. has[Past tense verb]/[past tense verb]To,From,...

"^^rdf:HTML ; skos:note "Which are the allowed inferences? Should we write a RIF ontology to describe the intended meaning of the relations of Datanode?"@en . ######### # Types # ######### :Datanode a owl:Class, rdfs:Class ; rdfs:label "A data node"@en ; rdfs:comment "A data node is an underspecified data object, in a network of data nodes."@en . ############## # Properties # ############## :relatedWith a owl:ObjectProperty, owl:SymmetricProperty, owl:ReflexiveProperty ; rdfs:label "related with"@en ; rdfs:comment "A data node is connected to another one."@en ; dcterms:description "

This is the Top Property of Datanode.

"^^rdf:HTML ; rdfs:domain :Datanode ; rdfs:range :Datanode . # Level 1 :about rdfs:label "about"@en ; rdfs:comment "A data node is about another data node."@en ; dcterms:description "

A data node may be metadata about another.

"^^rdf:HTML ; rdfs:subPropertyOf :relatedWith . :metadata rdfs:label "metadata" ; rdfs:comment "A data node has another data node as metadata."@en ; dcterms:description "

This is used to relate a data node to its metadata.

"^^rdf:HTML ; rdfs:subPropertyOf :relatedWith ; owl:inverseOf :about . :references rdfs:label "references"@en ; dcterms:description "

The subject of this property includes a mention to something which is (included in) another data node.
Talking about RDF datasets, this refer to the mention of a URI belonging to another dataset. For example, a dataset about employees could mention a Geonames location.

"^^rdf:HTML ; dcterms:description "

It looks like there could be a more generic property here, which refer to the fact of sharing some signatures (identifiers), without assuming an order or direction of the reference. Two data nodes may simply use the same identifier independently from the intention of making a reference to anything else (then the identifier itself). Does this make sense?

"^^rdf:HTML ; rdfs:subPropertyOf :relatedWith . :referencedBy rdfs:label "referenced by"@en ; rdfs:subPropertyOf :relatedWith ; owl:inverseOf :references . :isDerivationOf rdfs:label "is derivation of"@en ; dcterms:description "

This relation indicates that a data node is the origin of another, in the sense that the second have been produced using the first as information source.

"^^rdf:HTML ; dcterms:description "

Is this property transitive? (No)

"^^rdf:HTML ; rdfs:subPropertyOf :relatedWith . :hasDerivation rdfs:label "has derivation"@en ; rdfs:subPropertyOf :relatedWith ; owl:inverseOf :isDerivationOf . # :adjacentTo a owl:TransitiveProperty ; a owl:SymmetricProperty ; rdfs:label "adjacent to"@en ; rdfs:comment "To relate a data node to any of their adjacent data node."@en ; dcterms:description "

This property basically represents the proximity of some data to other. Two parts of the same dataset are adjacents each other.

"^^rdf:HTML ; rdfs:subPropertyOf :relatedWith . :hasPart a owl:TransitiveProperty ; rdfs:label "has part"@en ; rdfs:comment "To related a data node to another which is contained in it."@en ; rdfs:subPropertyOf :relatedWith . :isPartOf a owl:TransitiveProperty ; rdfs:label "is part of"@en ; rdfs:subPropertyOf :relatedWith ; owl:inverseOf :hasPart . :hasVocabulary a owl:ObjectProperty ; rdfs:label "has vocabulary"@en ; rdfs:comment "Relates a data node to a set of names that are all used in the first."@en ; dcterms:description "

The range of this property is a data node which enumerates a set of terms that are all used by the subject data node as identifiers (eventually to name structural elements, like attribute names or types).

"^^rdf:HTML ; skos:note "

When a data node :hasVocabulary another, we expect the latter to be the collection of terms used by the data node to name its properties and types.
How to know if there is some term that is not part of that vocabulary? In other words, is it relevant to know whether a vocabulary is complete or not wrt some data?

"^^rdf:HTML ; rdfs:subPropertyOf :relatedWith . :isVocabularyOf a owl:ObjectProperty ; rdfs:label "is vocabulary of"@en ; owl:inverseOf :hasVocabulary ; rdfs:subPropertyOf :relatedWith . # :versionOf a owl:ObjectProperty, owl:SymmetricProperty ; rdfs:label "version"@en ; dcterms:description "

Use this property to represent a temporal relation between two data nodes that are meant to be the same at a different point in time. The property is symmetric and does not specify a direction.
This property is not transitive. While it can be argued that the identity of something tracked temporarly should not change, thus implying transitivity, we want support the case when a data note has more then one following version (branching). Avoiding transitivity allows it.

"^^rdf:HTML ; rdfs:subPropertyOf :relatedWith . :hasUpdate a owl:ObjectProperty ; rdfs:label "has update"@en ; rdfs:comment "A data node may be related to another that improves its currency."@en ; dcterms:description "

Update is considered in a general meaning of being a modification/modified version meant to better reflect the referred world.

"^^rdf:HTML ; rdfs:subPropertyOf :relatedWith . :isUpdateOf a owl:ObjectProperty ; rdfs:label "is update of"@en ; rdfs:comment "A data node that is meant to improve the currency of another."@en ; owl:inverseOf :hasUpdate ; rdfs:subPropertyOf :relatedWith . :inconsistentWith a owl:ObjectProperty ; a owl:SymmetricProperty ; rdfs:label "inconsistent with"@en ; rdfs:comment "A data node that should not be used together with another."@en ; skos:note "

We intend consistency in a general sense: two data nodes are inconsistent because they do not agree.

"^^rdf:HTML ; dcterms:description "

It can be the case that a single data node is corrupted to some respect. It can then be marked to be inconsistent with itself.

"^^rdf:HTML ; rdfs:subPropertyOf :relatedWith ; owl:propertyDisjointWith :consistentWith . :consistentWith a owl:ObjectProperty ; a owl:SymmetricProperty ; rdfs:label "consistent with"@en ; rdfs:comment "A data node that can (should) be used together with another. "@en ; dcterms:description "

We intend consistency in a general sense: two data nodes are consistent because they agree (ie, they do not disagree...).

"^^rdf:HTML ; dcterms:description "

It can be the case that a single data node is verified to be correct. It can then be marked to be consistent with itself.

"^^rdf:HTML ; rdfs:subPropertyOf :relatedWith . # :overlappingCapabilityWith a owl:SymmetricProperty ; rdfs:label "overlapping capability with"@en ; dcterms:description "

Two data nodes have similar potential. This may refer to any kind of feature, being it structural (they share schema elements), physical (they are both in XML) or related to the domain (they both talk about Music Artists) - just to make few examples.

"^^rdf:HTML ; skos:note "This relation is needed to generically express comparison of data nodes with relation to specific tasks."@en ; rdfs:subPropertyOf :relatedWith . # :differentCapabilityFrom a owl:SymmetricProperty ; dcterms:description "

Two nodes have different potential. Two data nodes using different vocabularies or two copies of the same data in different places.

"^^rdf:HTML ; rdfs:label "different capability from"@en ; skos:note "(Similarly to :overlappingCapabilityWith) This relation is needed to generically express comparison of data nodes with relation to specific tasks."@en ; rdfs:subPropertyOf :relatedWith . # Level 2 # from about/metadata :describes rdfs:label "describes"@en ; rdfs:comment "A data node describes another."@en ; dcterms:description "

This relates a datanode to any datanode being an object in its representation.

"^^rdf:HTML ; rdfs:subPropertyOf :about . :describedBy rdfs:label "described by" ; rdfs:comment "Data have other data as description."@en ; dcterms:description "

This relates a datanode to any datanode being an object in its representation.

"^^rdf:HTML ; rdfs:subPropertyOf :metadata ; owl:inverseOf :describes . :hasAnnotation a owl:ObjectProperty ; rdfs:label "has annotation"@en ; rdfs:comment "This relates a datanode to some metadata attached to it."@en ; rdfs:subPropertyOf :hasAttached ; rdfs:subPropertyOf :metadata . :isAnnotationOf a owl:ObjectProperty ; rdfs:label "is annotation of"@en ; rdfs:comment "When an attached datanode is also metadata about what it is attached to... it is an annotation."@en ; rdfs:subPropertyOf :attachedTo ; rdfs:subPropertyOf :about ; owl:inverseOf :hasAnnotation . # from references/referenced by :hasDependency rdfs:label "has dependency"@en ; rdfs:comment "A datanode needs another to be used or interpreted."@en ; skos:note "The concept of dependency is here considered as to be expressed within the datanode (it is subproperty of references). Is this really a requirement?"; rdfs:subPropertyOf :references . :isDependencyOf rdfs:label "is dependency of"@en ; rdfs:comment "A datanode is required by another one in order for it to be used or interpreted."@en ; rdfs:subPropertyOf :referencedBy ; owl:inverseOf :hasDependency . :links rdfs:label "links"@en ; rdfs:comment "A data node links to other data using specific tecniques known in the context of Linked Data (like rdfs:seeAlso or owl:sameAs)."@en ; skos:note "It would be interesting to have a taste of other ways of doing similar links in other context then Linked Data."@en; rdfs:subPropertyOf :references . :linkedBy rdfs:label "linked by"@en ; rdfs:comment "A data node is linked by another using specific tecniques known in the context of Linked Data (like rdfs:seeAlso or owl:sameAs)."@en ; rdfs:subPropertyOf :referencedBy ; owl:inverseOf :links . :usesSchema a owl:ObjectProperty ; rdfs:label "uses schema"@en ; rdfs:comment "Relates a data node to another used as schema."@en; dcterms:description "

The second is intended to be a self contained model that is (even partly) used in the data node.

"^^rdf:HTML ; dcterms:description "

We distinguish the schema and the vocabulary as follows. A vocabulary is the enumeration of a set of terms. A schema organize a set of terms in a system of some sort. A list of body parts is not the anatomy of a body. The furniture is not an interior design model.

"^^rdf:HTML ; rdfs:subPropertyOf :references . :schemaUsedBy a owl:ObjectProperty ; rdfs:label "schema used by"@en ; owl:inverseOf :usesSchema ; skos:note "Does being a schema imply being a dependency?"@en ; rdfs:subPropertyOf :referencedBy . # from adjacent :hasAttached rdfs:label "has attached"@en ; rdfs:comment "Data have attached other data for some reason"@en ; rdfs:subPropertyOf :adjacentTo . :attachedTo rdfs:label "attached to"@en ; rdfs:comment "Data are attached to data for some reason"@en ; dcterms:description """This, along with its inverse "haveAttached" , are considered to model the "physical" dependency between data. You need to have access to the first in order to access the second, for example. An obvious example is an email and its attachments."""@en ; owl:inverseOf :hasAttached ; rdfs:subPropertyOf :adjacentTo . # disjointPartWith :disjointPartWith a owl:SymmetricProperty ; rdfs:label "disjoint part with"@en ; rdfs:comment "Two datanodes are adjacent parts of another. This property relates the two parts without specifying anything about their container. Can be used in conjunction with isPartOf to state that two parts do not overlap."@en ; rdfs:subPropertyOf :adjacentTo . # from has vocabulary/is vocabulary of :hasDescriptors a owl:ObjectProperty ; rdfs:label "has descriptors"@en ; rdfs:comment "A descriptor is an element used to qualify a value. Relates a data node to the collection of the descriptors used (being it a data node, obviously)."@en ; dcterms:description """

We choose the term descriptor to indicate generically the element used to bind/map/qualify a value with respect to its entity. Practically, this term maps to

  • "Field" in Object Oriented Programming;
  • "Predicate" in First Order Logic
  • Column identifier (Attribute) in Relation Database terminology
  • rdf:Property in the Resource Description Framework

"""^^rdf:HTML ; rdfs:subPropertyOf :hasVocabulary . :descriptorsOf a owl:ObjectProperty ; rdfs:label "descriptors of"@en ; rdfs:comment "This property relates a datanode of descriptors to the datanode that uses them."@en; rdfs:subPropertyOf :isVocabularyOf ; owl:inverseOf :hasDescriptors . :hasDatatypes a owl:ObjectProperty ; rdfs:label "has datatypes"@en ; rdfs:comment "Relates a datanode to the vocabulary of datatypes used in it."@en ; rdfs:subPropertyOf :hasVocabulary . :datatypesOf a owl:ObjectProperty ; rdfs:label "datatypes of"@en ; rdfs:comment "Relates a vocabulary of datatypes to the datanode that uses them."@en ; rdfs:subPropertyOf :isVocabularyOf ; owl:inverseOf :hasDatatypes . :hasTypes a owl:ObjectProperty ; rdfs:label "has types"@en ; rdfs:comment "Relates a data node to the vocabulary of the types used."@en ; rdfs:subPropertyOf :hasVocabulary . :typesOf a owl:ObjectProperty ; rdfs:label "types of"@en ; rdfs:comment "Relates the vocabulary of the types used in a datanode to the datanode itself."@en ; rdfs:subPropertyOf :isVocabularyOf ; owl:inverseOf :hasTypes . # from has derivation/is derivation of :hasInterpretation a owl:ObjectProperty ; rdfs:label "has interpretation"@en ; rdfs:comment "Some data is interpretated such to produce other data."@en ; rdfs:subPropertyOf :hasDerivation . :isInterpretationOf a owl:ObjectProperty ; rdfs:label "is interpretation of"@en ; rdfs:comment "Some data emerge as the interpretation of other."@en ; owl:inverseOf :hasInterpretation ; rdfs:subPropertyOf :isDerivationOf . :hasSelection a owl:ObjectProperty ; rdfs:label "has selection"@en ; rdfs:comment "We represent here the outcome of the isolation of a part of a data node for a specific intent."@en ; rdfs:subPropertyOf :hasPart ; rdfs:subPropertyOf :hasDerivation . :isSelectionOf a owl:ObjectProperty ; rdfs:label "is selection of"@en ; rdfs:subPropertyOf :isDerivationOf ; rdfs:subPropertyOf :isPartOf ; owl:inverseOf :hasSelection . :combinedIn a owl:ObjectProperty ; rdfs:label "combined in"@en ; rdfs:comment "A data node that have been combined (with something else) in a given data node."@en ; rdfs:subPropertyOf :hasDerivation . :combinationFrom a owl:ObjectProperty ; rdfs:label "combination from"@en ; owl:inverseOf :combinedIn ; rdfs:comment "A data node that is the result of the combination of another data node with something else."@en ; rdfs:subPropertyOf :isDerivationOf . :hasSummarization a owl:ObjectProperty ; rdfs:label "has summarization"@en ; rdfs:subPropertyOf :hasDerivation . :isSummarizationOf a owl:ObjectProperty ; rdfs:label "is summarization of"@en ; rdfs:subPropertyOf :isDerivationOf ; owl:inverseOf :hasSummarization . :processedInto a owl:ObjectProperty ; rdfs:label "processed into"@en ; rdfs:comment "A data node is processed (transformed) to obtain another one."@en ; rdfs:subPropertyOf :hasDerivation . :processedFrom a owl:ObjectProperty ; rdfs:label "processed from"@en ; rdfs:subPropertyOf :isDerivationOf ; owl:inverseOf :processedInto . :hasStandIn a owl:ObjectProperty ; rdfs:label "has stand-in"@en ; rdfs:comment "Some data is a substitute of another, for specific reasons."@en ; dcterms:description "

Are we sure a stand-in is always a derivation?

"^^rdf:HTML ; rdfs:subPropertyOf :hasDerivation ; rdfs:subPropertyOf :overlappingCapabilityWith . :isStandInOf a owl:ObjectProperty ; rdfs:label "is stand-in of"@en ; rdfs:subPropertyOf :isDerivationOf ; rdfs:subPropertyOf :overlappingCapabilityWith ; owl:inverseOf :hasStandIn . :hasCopy a owl:TransitiveProperty ; rdfs:label "has copy"@en ; rdfs:subPropertyOf :hasDerivation . :isCopyOf a owl:TransitiveProperty ; rdfs:label "is copy of"@en ; rdfs:subPropertyOf :isDerivationOf ; owl:inverseOf :hasCopy . # from version :hasSnapshot a owl:ObjectProperty ; rdfs:label "has snapshot"@en ; rdfs:comment "A copy of a data node in a specific time point"@en ; rdfs:subPropertyOf :hasCopy ; rdfs:subPropertyOf :versionOf . :isSnapshotOf a owl:ObjectProperty ; rdfs:label "is snapshot of"@en ; rdfs:subPropertyOf :isCopyOf ; rdfs:subPropertyOf :versionOf ; owl:inverseOf :hasSnapshot . :newerVersionOf a owl:TransitiveProperty ; rdfs:label "newer version of"@en ; rdfs:subPropertyOf :versionOf . :olderVersionOf a owl:TransitiveProperty ; rdfs:label "older version of"@en ; rdfs:subPropertyOf :versionOf ; owl:inverseOf :newerVersionOf . # from has update/is update of :hasUpdatedVersion a owl:ObjectProperty ; rdfs:label "updated version"@en ; dcterms:description "It is not clear why this is not also a sub property of :nextVersionOf"@en ; rdfs:subPropertyOf :hasUpdate ; rdfs:subPropertyOf :newerVersionOf . :isUpdatedVersionOf a owl:ObjectProperty ; rdfs:label "updated version of"@en ; rdfs:subPropertyOf :isUpdateOf ; rdfs:subPropertyOf :olderVersionOf ; owl:inverseOf :hasUpdatedVersion . :hasChange a owl:ObjectProperty ; a owl:InverseFunctionalProperty ; rdfs:label "has change"@en ; rdfs:comment "some data has a change to come"@en ; rdfs:subPropertyOf :hasUpdate . :isChangeOf a owl:ObjectProperty ; a owl:FunctionalProperty ; rdfs:label "is change of"@en ; rdfs:comment "some data is the coming change of some other"@en ; rdfs:subPropertyOf :isUpdateOf ; owl:inverseOf :hasChange . # from has part/is part of :hasSection a owl:TransitiveProperty ; rdfs:label "has section"@en ; rdfs:comment "Data can be cut in sections according to specific attributes."@en ; dcterms:description "An example is the relation between a void:Dataset and a dataset being a specific void:propertyPartition."@en ; rdfs:subPropertyOf :hasPart . :isSectionOf a owl:TransitiveProperty ; rdfs:label "is section of"@en ; rdfs:subPropertyOf :isPartOf ; owl:inverseOf :hasSection . :hasPortion a owl:TransitiveProperty ; rdfs:label "has portion"@en ; dcterms:description ":hasPortion is used to capture the relation with a subset of the data."@en ; rdfs:subPropertyOf :hasPart ; owl:inverseOf :isPortionOf . :isPortionOf a owl:TransitiveProperty ; rdfs:label "is portion of"@en ; rdfs:subPropertyOf :isPartOf . # from different capability from :differentPopulationFrom a owl:SymmetricProperty ; rdfs:label "different population from"@en ; # owl:propertyDisjointWith :samePopulationAs ; rdfs:subPropertyOf :differentCapabilityFrom . :differentVocabularyFrom a owl:SymmetricProperty ; rdfs:label "different vocabulary from"@en ; # owl:propertyDisjointWith :sameVocabularyAs ; rdfs:subPropertyOf :differentCapabilityFrom . # from overlapping capability with :overlappingVocabularyWith a owl:ObjectProperty ; rdfs:label "overlapping vocabulary with"@en ; rdfs:subPropertyOf :overlappingCapabilityWith . :overlappingPopulationWith a owl:ObjectProperty ; rdfs:label "overlapping population with"@en ; rdfs:subPropertyOf :overlappingCapabilityWith . # Level 3 # from disjoint part :disjointSectionWith a owl:SymmetricProperty ; rdfs:label "disjoint section with"@en ; rdfs:comment "Data can be cut in sections according to specific attributes."@en ; rdfs:subPropertyOf :differentVocabularyFrom ; rdfs:subPropertyOf :disjointPartWith . :disjointPortionWith a owl:SymmetricProperty ; rdfs:label "disjoint portion with"@en ; rdfs:subPropertyOf :differentPopulationFrom ; rdfs:subPropertyOf :disjointPartWith . # from describes/described by :hasStatistic a owl:ObjectProperty ; rdfs:label "has statistic"@en ; rdfs:subPropertyOf :hasComputation ; rdfs:subPropertyOf :describedBy . :isStatisticOf a owl:ObjectProperty ; rdfs:label "is statistic of"@en ; rdfs:subPropertyOf :isComputationOf ; rdfs:subPropertyOf :describes ; owl:inverseOf :hasStatistic . # from has descriptors/descriptors of :hasAttributes a owl:ObjectProperty ; rdfs:label "has attributes"@en ; rdfs:comment "Relates data to the attributes used."@en ; dcterms:description "

We relate with this property a data node to a collection of attributes used in it. We distinguish attributes from relations because the first does qualify its range but only its domain (saying that a person is 1.82m tall does not change our knowledge about 1.82m).

"^^rdf:HTML ; rdfs:subPropertyOf :hasDescriptors . :attributesOf a owl:ObjectProperty ; rdfs:label "attributes of"@en ; rdfs:subPropertyOf :descriptorsOf ; owl:inverseOf :hasAttributes . :hasRelations a owl:ObjectProperty ; rdfs:label "has relations"@en ; rdfs:comment "Relates data to the relations used."@en ; rdfs:subPropertyOf :hasDescriptors . :relationsOf a owl:ObjectProperty ; rdfs:label "relations of"@en ; rdfs:subPropertyOf :descriptorsOf ; owl:inverseOf :hasRelations . # from has selection/is selection of :hasExample a owl:ObjectProperty ; rdfs:label "has example"@en ; rdfs:subPropertyOf :hasSelection . :isExampleOf a owl:ObjectProperty ; rdfs:label "example of"@en ; rdfs:subPropertyOf :isSelectionOf ; owl:inverseOf :hasExample . # from newer version/older version :nextVersionOf a owl:FunctionalProperty ; rdfs:label "next version of"@en ; rdfs:subPropertyOf :newerVersionOf . :previousVersionOf a owl:InverseFunctionalProperty ; rdfs:label "previous version of"@en ; rdfs:subPropertyOf :olderVersionOf ; owl:inverseOf :nextVersionOf . # from has change/is change of :hasAddition a owl:ObjectProperty ; rdfs:label "has addition"@en ; rdfs:comment "some data is the addition-update of some other"@en ; rdfs:subPropertyOf :hasChange . :isAdditionOf a owl:ObjectProperty ; rdfs:label "is addition of"@en ; rdfs:subPropertyOf :isChangeOf ; owl:inverseOf :hasAddition . :hasDeletion a owl:ObjectProperty ; rdfs:label "has deletion"@en ; rdfs:comment "A data node is the to-delete-information of some other. In other terms, it is the outdated information."@en ; dcterms:description "

Indicates a data node which includes information that is now old or outdated. We don't indicate it to be also a part, this is to discuss.

"^^rdf:HTML; rdfs:subPropertyOf :hasChange . :isDeletionOf a owl:ObjectProperty ; rdfs:label "is deletion of"@en ; rdfs:subPropertyOf :isChangeOf ; owl:inverseOf :hasDeletion . # from different vocabulary # from different population :disjointCapabilityWith a owl:SymmetricProperty ; rdfs:label "disjoint capability"@en ; # owl:propertyDisjointWith :overlappingCapabilityWith ; rdfs:subPropertyOf :differentPopulationFrom ; rdfs:subPropertyOf :differentVocabularyFrom . # from overlapping vocabulary # from overlapping population :redundantWith a owl:TransitiveProperty ; rdfs:label "redundant with"@en ; rdfs:subPropertyOf :overlappingVocabularyWith ; rdfs:subPropertyOf :overlappingPopulationWith . :sameVocabularyAs a owl:TransitiveProperty ; rdfs:label "same vocabulary"@en ; rdfs:subPropertyOf :overlappingVocabularyWith . :samePopulationAs a owl:TransitiveProperty ; rdfs:label "same population"@en ; rdfs:subPropertyOf :overlappingPopulationWith . # from processed from/processed into :hasReification a owl:ObjectProperty ; rdfs:label "has reification"@en ; rdfs:subPropertyOf :processedInto . :isReificationOf a owl:ObjectProperty ; rdfs:label "is reification of"@en ; rdfs:subPropertyOf :processedFrom ; owl:inverseOf :hasReification . :hasComputation a owl:ObjectProperty ; rdfs:label "has computation"@en ; rdfs:subPropertyOf :processedInto . :isComputationOf a owl:ObjectProperty ; rdfs:label "is computation of"@en ; rdfs:subPropertyOf :processedFrom ; owl:inverseOf :hasComputation . :refactoredInto a owl:ObjectProperty ; rdfs:label "refactored into"@en ; rdfs:subPropertyOf :processedInto . :refactoredFrom a owl:ObjectProperty ; rdfs:label "refactored from"@en ; owl:inverseOf :refactoredInto ; rdfs:subPropertyOf :processedFrom . :remodelledTo a owl:ObjectProperty ; rdfs:label "remodelled to"@en ; rdfs:subPropertyOf :processedInto . :remodelledFrom a owl:ObjectProperty ; rdfs:label "remodelled from"@en ; dcterms:description "Refactor is transforming to make it simpler, optimized, clean. Remodelling looks not necessarly that."@en ; owl:inverseOf :remodelledTo ; rdfs:subPropertyOf :processedFrom . :cleanedInto a owl:ObjectProperty ; rdfs:label "cleaned into"@end ; rdfs:comment "Clean to make emerge potential capabilities."@en ; rdfs:subPropertyOf :overlappingCapabilityWith ; rdfs:subPropertyOf :processedInto . :cleanedFrom a owl:ObjectProperty ; rdfs:label "cleaned from"@end ; rdfs:subPropertyOf :processedFrom ; rdfs:subPropertyOf :overlappingCapabilityWith ; owl:inverseOf :cleanedInto . :optimizedInto a owl:ObjectProperty ; rdfs:label "optimized into"@end ; rdfs:comment "A datanode have been optimized into a new one, to amplify existing capabilities."@en ; rdfs:subPropertyOf :overlappingCapabilityWith ; rdfs:subPropertyOf :processedInto . :optimizedFrom a owl:ObjectProperty ; rdfs:label "optimized from"@end ; rdfs:subPropertyOf :overlappingCapabilityWith ; rdfs:subPropertyOf :processedFrom ; owl:inverseOf :optimizedInto . # from has interpretation/is interpretation of :hasExtraction a owl:ObjectProperty ; rdfs:label "has extraction"@en ; rdfs:subPropertyOf :hasInterpretation . :isExtractionOf a owl:ObjectProperty ; rdfs:label "extraction of"@en ; rdfs:subPropertyOf :isInterpretationOf ; owl:inverseOf :hasExtraction . :hasInference a owl:ObjectProperty ; rdfs:label "has inference"@en ; rdfs:subPropertyOf :hasInterpretation . :isInferenceOf a owl:ObjectProperty ; rdfs:label "is inference of"@en ; rdfs:subPropertyOf :isInterpretationOf ; owl:inverseOf :hasInference . # from has section/is section of :hasIdentifiers a owl:ObjectProperty ; rdfs:label "has identifiers"@en ; rdfs:subPropertyOf :hasSection . :identifiersOf a owl:ObjectProperty ; rdfs:label "identifiers of"@en ; owl:inverseOf :hasIdentifiers ; rdfs:subPropertyOf :isSectionOf . # from has portion/is portion of :hasSample a owl:ObjectProperty ; rdfs:label "has sample"@en ; rdfs:subPropertyOf :hasPortion . :isSampleOf a owl:ObjectProperty ; rdfs:label "is sample of"@en ; owl:inverseOf :hasSample ; rdfs:subPropertyOf :isPortionOf . # Level 4 # from same population # from same vocabulary :sameCapabilityAs a owl:TransitiveProperty ; rdfs:label "same capability as"@en ; # rdfs:subPropertyOf :redundantWith ; (inferred) rdfs:subPropertyOf :samePopulationAs ; rdfs:subPropertyOf :sameVocabularyAs . # from has stand-in/is stand-in of :hasAnonymized a owl:ObjectProperty ; rdfs:label "has anonymized substitute"@en ; rdfs:subPropertyOf :hasStandIn ; rdfs:subPropertyOf :processedInto . :isAnonymizedOf a owl:ObjectProperty ; rdfs:label "is anonymized substitute of"@en ; rdfs:subPropertyOf :isStandInOf ; rdfs:subPropertyOf :processedFrom ; owl:inverseOf :hasAnonymized . :hasCache a owl:ObjectProperty ; rdfs:label "has cache"@en ; rdfs:subPropertyOf :hasStandIn ; rdfs:subPropertyOf :hasSnapshot . :isCacheOf a owl:ObjectProperty ; rdfs:label "is cache of"@en ; rdfs:subPropertyOf :isStandInOf ; rdfs:subPropertyOf :isSnapshotOf ; owl:inverseOf :hasCache . # Level 5 # from same capability as :duplicate a owl:SymmetricProperty ; a owl:IrreflexiveProperty ; rdfs:label "duplicate"@en ; owl:disjointPropertyWith :disjointCapabilityWith ; rdfs:subPropertyOf :sameCapabilityAs .